업로드 된 파일을 모델로 가져 오는 데 FasterCSV를 사용하고 있습니다.이 파일은 작은 파일에 적합합니다. 그러나 큰 데이터 세트 (21,000 라인)를 가져 오려고하면 수명이 오래 걸리고 라이브 서버에서 브라우저 시간 초과가 발생합니다.CSV를 레일스의 행 배치로 가져 오시겠습니까?
이 내 현재 작업 코드 :
logcount=0
Attendee.transaction do
FCSV.new(file, :headers => true).each do |row|
row[1] = Date.strptime(row[1], '%m/%d/%Y')
record = @event.attendees.new(:union_id => row[0], :dob => row[1], :gender => row[2])
if record.save
logcount += 1
end
end
end
나는 백그라운드 프로세스를 사용 싶지만, 사용자가 시스템의 다음 단계로 이동하기 전에 수입 얼마나 많은 라인을 볼 필요 .
따라서 action chunking을 사용하고 더 적은 수의 행을 읽고 카운터를 설정 한 다음 몇 가지 종류의 진행률로보기를 업데이트 한 다음 이전 카운터를 시작점으로 사용하여 다시 메서드를 실행해야한다고 생각했습니다.
FasterCSV에서 설정된 수의 행만 읽는 방법과 시작점의 오프셋을 설정하는 방법을 볼 수 없습니다.
누구든지이 작업을 수행하는 방법을 알고 있습니까? 아니면 이것을 처리 할 수있는 더 좋은 방법이 있습니까?
이 죽은 링크를 보는 사람 : https://web.archive.org/web/20080729041651/http://www.continuousthinking.com/tags/arext – MaicolBen