rake任务中的增量参数

时间:2012-04-03 21:00:26

标签: ruby-on-rails ruby-on-rails-3 rake each increment

我有一个需要在“块”中进行的API调用(由于API限制)。然后我会遍历这些数据。

所有这些都发生在rake任务中。

这是循环:

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

end

但是我需要将offset参数增加100(即100,200,300)才能实际循环遍历所有事件。

那么在rake任务中增加offset参数的最佳方法是什么?

1 个答案:

答案 0 :(得分: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