2016-03-29 10 views
0

Ich verwende Rails 4.2, aktiven Job und verzögerten Job, um E-Mails an neue Benutzer zu liefern.Kann ein verzögerter Job debuggt werden, nachdem er in die Warteschlange gestellt wurde?

Wenn ich einen Codefehler im Mailer gemacht habe (zB eine falsch geschriebene Variable), und ActiveJob :: DelayedJob eine Exception ausgelöst hat, gibt es eine Möglichkeit, den Codierungsfehler zu beheben, aber denselben Job erneut auszuführen der neue feste Code?

Vielleicht mache ich das falsch, aber ich frage mich, was der Zweck ist, verzögerte Job Code erneut und immer wieder zu versuchen, wenn es nicht behoben werden kann!

Antwort

1

Sie sollten Ihre verzögerten Job-Mitarbeiter neu starten, sobald Sie Änderungen am Buggy-Code vorgenommen haben, damit die Änderungen wirksam werden.

Wenn Sie manuell eine bestimmte Aufgabe ausführen möchten, können Sie tun, dass eine neue Instanz der Schienen-Konsole und die Ausführung, indem Sie folgenden Code

Delayed::Worker.new.run(Delayed::Job.find(1)) # replace 1 with the job number.

+0

Also, wenn ich 1), um den Code zu beheben, dann 2) Neustart der verzögerten Job Worker, die alten Jobs werden versuchen, wieder zu starten, aber mit dem neuen festen Code? Ist das etwas, was ich jedes Mal tun sollte, wenn ich Fehlerbehebungen einstelle? –

+0

ja, das ist genau so, wie Sie die Schienen Umgebung bei der Produktion neu laden, z. Verwenden des Berührungsbefehls mit dem Passagier, um Passagier-Server-Instanzen neu zu starten –

Verwandte Themen