2012-04-03 4 views
0

私はAPIコールを「チャンク」(API制限のため)で行う必要があります。私はそのデータをループします。レーキタスクのインクリメントパラメータ

これはすべてレーキタスクで発生します。

はここでループです:

Stripe::Event.all(:count => 100, :offset => 0).each do |event| 

end 

しかし、私は実際にすべてのイベントをループできるようにするには100(すなわち、100、200、300。)によりoffsetパラメータをインクリメントする必要があります。

rakeタスク内でそのoffsetパラメータを増やすにはどうすればよいですか?

+0

ようなものになるだろう。 2回目のレイクタスクコール、オフセットは100にする必要があります。等々。それはそれのようなものですか? –

+0

@JatinGanhotraはい、そうです。 – Shpigford

答えて

1

ストライプ::イベントはActiveRecordのモデルであるならば、私はあなたが探していると思う:そうでなければ私はあなたがこの問題を解決する方法についてのインスピレーションを得るためにhttp://apidock.com/rails/ActiveRecord/Batches/find_in_batchesで見ることができると思います

Stripe::Event.find_in_batches(:batch_size => 100).each do |batch| 
    batch.each do |event| 
    ... 
    end 
end 

最も単純には0になりオフセット、タスクを熊手の最初の呼び出しで

events = "not blank" 
count = 100 
offset = 0 
until events.blank? do 
    events = Stripe::Event.all(:count => count, :offset => offset) 
    events.each do |event| 

    end 
    offset += count 
end 
関連する問題