2010-12-16 54 views
2

Ich habe eine Rails-Anwendung mit dem Plugin https://github.com/tobi/delayed_jobReihenfolge der Ausführung von Jobs in delayed_job

Einige Male der Reihenfolge, in der die Aufträge ausgeführt werden, ist nicht die gleiche wie in der sie erstellt werden.

Ich möchte, dass die Jobs in der gleichen Reihenfolge ausgeführt werden, in der sie erstellt wurden. In einigen Fällen ist es für die Ausführung eines Jobs wichtig, dass der vorherige Job erfolgreich ausgeführt wurde.

Bitte helfen.

Grüße, Pankaj

Antwort

0

Es genau ohne zu sehen, schwer zu sagen ist, wie Sie Ihre Arbeitsplätze zu schaffen, aber das einzige, was die Reihenfolge der Ausführung mit Ausnahme der created_at Zeit beeinflusst, ist die Priorität für den Auftrag festgelegt. Ich kenne die Unterschiede zwischen der tobi Gabel, die Sie verwenden, und der collectiveidea Gabel nicht, aber das ist von der kollektivenidea Dokumentation:

Standardmäßig sind alle Aufträge mit Priorität = 0 geplant, die oberste Priorität hat Sie können dies ändern, indem Sie Delayed :: Worker.default_priority auf etwas anderes setzen. Niedrigere Nummern haben höhere Priorität.

Und von Migration:

table.integer: Priorität: default => 0 # Erlaubt einige Aufträge an die Spitze der Warteschlange kann

Und Sie natürlich zu springen Geben Sie die Priorität manuell an, wenn Sie Ihre Jobs erstellen.

0

Ich weiß, dass Aufträge, die fehlschlagen, zu einem späteren Zeitpunkt für Wiederholungen neu geplant werden.

"Bei einem Fehler wird der Job in 5 Sekunden erneut geplant + N ** 4, wobei N die Anzahl der Wiederholungen ist." Vom Setup-Abschnitt README.textile.

Ich nehme an, dass die verbleibenden Jobs in der Zwischenzeit verarbeitet werden. Möglicherweise möchten Sie Ihre Tabelle delayed_job überwachen und sehen, ob für Jobs der Wert last_error auf einen anderen Wert als NULL gesetzt ist.

Es kann auch davon abhängen, wie viele Arbeitsprozesse Sie haben. delayed_job-Mitarbeiter nehmen die Jobs aus der delayed_jobs-Tabelle der Reihe nach, aber es gibt keine Garantie, dass die Worker ihre Aufgaben in der richtigen Reihenfolge ausführen.

Verwandte Themen