2016-05-25 14 views
1

Ich entwickle eine Anwendung in Rails, die es Benutzern ermöglicht, Produkte für eine bestimmte Zeit zu verkaufen. Jedes Produkt hat eine andere 'end_time', in der ich eine Methode ausführen möchte, die den Produktstatus auf 'tot' setzt.
Ich habe auf dem Wheneverize Juwel gemerkt, aber soweit ich sagen kann, würde ich es verwenden, um eine wiederkehrende Aufgabe jede Minute, Stunde, Tag, etc ... Irgendwelche Ideen, wie ich gehen würde Ausführen eines Cron-Jobs, der zu jedem Produkt "end_time" ausgeführt wird?
Ausführen eines Cron-Jobs zu unterschiedlichen Zeiten für jeden Job

zum Beispiel etwas entlang der Linien von:

live_products = Product.where('status = ?', 'live') 

live_products.each do |product| 
at: product.end_time do 
    product.status = 'dead' 
    product.save 
end 
end 
+0

Blick auf diesen Link .. Sie können helfen [stackoverflow.com/questions/4602418](http://stackoverflow.com/questions/4602418/rails-whenever-gem-dynamic-values/31075237#31075237) – Mukesh

Antwort

0

Cronjob, jede Minute, für diejenigen, die Überprüfung, die Transaktion zu Toten müssen.

Product.turn_dead.update_all status: :dead 



#product.rb 
scope :live, -> {where status: :live} 
scope :out_of_time, -> {where "end_time <= ?", Time.now} 
scope :turn_dead, ->{ live.out_of_time }