Ruby 1.9.2를 사용하여 180,000 개가 넘는 데이터 행을 얻으려면 웹 서비스를 많이 호출해야합니다.웹 서비스에 일괄 처리 호출 및 진행 저장
결과의 총 수를 알 수있는 방법이 없습니다. 하루에 150,000 개의 행과 다음 주에 200,000 개의 행이있을 수 있으므로 결과가 0이 될 때까지 모든 호출을 일괄 적으로 수행해야합니다.
limit = 1000
offset = 0
@data = @client.get_data :limit => limit, :offset => offset
until @data.length.zero?
# save @data to database
offset += limit
@data = @client.get_data :limit => limit, :offset => offset
end
하지만 난을 여러 스레드를 가지고 싶습니다
는 지금은 (난 그냥 목적을 보여주는 이런 식으로 넣어, 물론 이것은 실제 코드가 아닌) 이런 일이 통화가 끝나면 데이터 손실을 피하기 위해 진행 상황을 저장하고 진행 상황을 저장하고 동일한 매개 변수로 통화를 재 시도하십시오.
여기서 중요한 문제는 내가 얻을 수있는 행의 총량을 알 수 없다는 것입니다. 두 경우 모두 Resque와 같은 것을 사용하고 모든 데이터를 얻기 위해 필요한 작업을 정의 하겠지만 사실이 아니라면 결과가 나올 때까지 오프셋 값을 늘려야합니다.
제안 사항?