0

「チャンク」で行う必要のあるAPI呼び出しがあります(APIの制限のため)。次に、そのデータをループします。

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

ループは次のとおりです。

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

end

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

offsetでは、レーキタスク内でそのパラメータをインクリメントするための最良の方法は何ですか?

4

1 に答える 1

1

Stripe :: EventがActiveRecordモデルの場合、私はあなたが探していると思います:

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

それ以外の場合は、この問題を解決する方法についてのインスピレーションを得るためにhttp://apidock.com/rails/ActiveRecord/Batches/find_in_batchesを参照できると思います。

最も簡単なのは次のようなものです

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
于 2012-04-04T12:04:34.287 に答える