Ich führe einen Job aus, der Daten an eine Rest-API sendet.Ruby on Rails, verzögerter Job: run_at Variable
Nach dem Abschluss all dieser Anfragen brauche ich eine 10-minütige Verzögerung, dann wird eine Methode aufgerufen, die auf diese gesendeten Anfragen verarbeitet wird.
def self.batch_task(batch_params)
# a very long code
Batch.delay.check_requests
end
Meine zweite Methode ist check_requests
def self.check_requests
puts 'hello darkness'
end
def check_requests
self.check_requests
end
am Ende, ich rufe handle_asynchronously
handle_asynchronously :batch_task
handle_asynchronously :check_requests, :run_at => Proc.new { 10.minutes.from_now }
Batch_task läuft richtig von check_reqeusts gefolgt, aber ich bin nicht die 10 bekommen -minute Verzögerung vor der Funktion check_requests. Mein Rake Job funktioniert gut. Ich sehe auch die hello_darkness-Ausgabe in der Konsole von Rake-Jobs.
versuchen Sie eine Verzögerung innerhalb verzögerten Verfahren zu schaffen? Was ist, wenn Sie 'Batch.delay.check_requests' direkt ausführen?' –
das ist was ich will, zuerst wird der verzögerte Job beendet, dann wird die check_request mit 10 Minuten Verzögerung aufgerufen. – ashusvirus
ok, aber produziert es eine Verzögerung von 10 Minuten, wenn Sie es außerhalb verzögerter Job-Methode ausführen? –