2012-04-03 89 views
0

我有一個API調用需要在「塊」中進行(由於API限制)。然後,我會循環這些數據。rake任務中的增量參數

所有這些都發生在耙子任務中。

這裏的循環:

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

end 

但我需要通過100(即100,200,300)遞增offset參數居然能遍歷所有的事件。

那麼在rake任務中增加offset參數的最佳方法是什麼?

+0

在第一次調用耙任務,偏移是0;第二次調用rake任務時,偏移量應爲100;等等。是這樣嗎? – 2012-04-04 05:25:02

+0

@JatinGanhotra是的,這是正確的。 – Shpigford 2012-04-04 13:45:02

回答

1

如果條紋::事件是一個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