2012-04-03 11 views
0

Ich habe einen API-Aufruf, der in "Chunks" (aufgrund API-Grenzen) gemacht werden muss. Ich würde dann diese Daten durchlaufen.Increment-Parameter in Rake-Task

All dies geschieht in einer Rake-Aufgabe.

Hier ist die Schleife:

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

end 

Aber ich brauche die offset Parameter um 100 zu erhöhen (dh 100, 200, 300.), Um tatsächlich durch all Ereignisse Schleife in der Lage zu sein.

Also, was ist der beste Weg, um diesen offset Parameter innerhalb der Rake-Aufgabe zu erhöhen?

+0

Im ersten Aufruf seiner Aufgabe rechen, würde 0 ausgeglichen werden; Das zweite Mal, wenn Sie Rake-Task aufrufen, sollte Offset 100 sein; und so weiter. Ist es so? –

+0

@JatinGanhotra Ja, das ist richtig. – Shpigford

Antwort

1

Wenn Streifen :: Ereignis ein Activerecord-Modell ist, ich glaube, Sie suchen:

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

Ansonsten denke ich, Sie bei http://apidock.com/rails/ActiveRecord/Batches/find_in_batches für Inspiration, wie dieses Problem zu lösen, aussehen könnte.

Der direkteste wäre so etwas wie

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