Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Laravel bietet automatische Wiederholungsversuche für fehlgeschlagene Jobs


Laravel bietet automatische Wiederholungsversuche für fehlgeschlagene Jobs


Ja, Laravel bietet automatische Wiederholungsversuche für fehlgeschlagene Jobs. Hier sind die Details:

Automatische Wiederholungsversuche

1. Konfigurierbare Wiederholungen: Sie können Jobs so konfigurieren, dass sie wiederholt werden, wenn sie aufgrund vorübergehender Fehler fehlschlagen, wodurch die Systemzuverlässigkeit erhöht wird. Dies geschieht durch Festlegen der Eigenschaft „tries“ für die Jobklasse[3].

2. Automatische Wiederholungsversuche: Laravel bietet automatische Wiederholungsversuche für fehlgeschlagene Jobs. Wenn ein Job fehlschlägt, wird er eine bestimmte Anzahl von Malen wiederholt, bevor er als fehlgeschlagen markiert wird[3].

3. Job-Wiederholungslogik: Sie können eine „fehlgeschlagene“ Methode für die Jobklasse definieren, um Jobfehler zu behandeln. Diese Methode wird aufgerufen, wenn ein Auftrag fehlschlägt, und ermöglicht Ihnen die Durchführung auftragsspezifischer Aktionen[3].

Auftragsfehler

1. Tabelle fehlgeschlagener Jobs: Laravel speichert fehlgeschlagene Jobs in einer Datenbanktabelle „failed_jobs“. Diese Tabelle enthält Informationen zur Job-ID, Verbindung, Warteschlange und Fehlerzeit[3].

2. Anzeigen fehlgeschlagener Jobs: Sie können alle fehlgeschlagenen Jobs mit dem Artisan-Befehl „queue:failed“ anzeigen. Dieser Befehl listet die Job-ID, die Verbindung, die Warteschlange und die Fehlerzeit auf[3].

3. Fehlgeschlagene Jobs wiederholen: Sie können fehlgeschlagene Jobs mit dem Artisan-Befehl „queue:retry“ wiederholen. Dieser Befehl verwendet eine Job-ID als Argument und versucht den Job erneut. Sie können auch alle fehlgeschlagenen Jobs erneut versuchen, indem Sie „queue:retry all“[3] verwenden.

4. Fehlgeschlagene Jobs löschen: Sie können fehlgeschlagene Jobs mit dem Artisan-Befehl „queue:forget“ löschen. Dieser Befehl verwendet eine Job-ID als Argument und löscht den Job. Sie können auch alle fehlgeschlagenen Jobs löschen, indem Sie „queue:flush“[3] verwenden.

Abschluss

Das Warteschlangensystem von Laravel bietet robuste Mechanismen für die Handhabung von Auftragswiederholungen und -fehlern. Durch das Konfigurieren von Wiederholungsversuchen, das Anzeigen fehlgeschlagener Jobs, das Wiederholen fehlgeschlagener Jobs und das Löschen fehlgeschlagener Jobs können Sie die Zuverlässigkeit und Effizienz Ihrer Hintergrundverarbeitungsaufgaben sicherstellen.

Zitate:
[1] https://stackoverflow.com/questions/30778924/laravel-4-retry-all-failed-jobs
[2] https://github.com/kirschbaum-development/laravel-queue-batch-retry
[3] https://ahmedshamim.com/posts/retry-mechanisms-in-laravel
[4] https://laravel.com/docs/11.x/queues
[5] https://stackoverflow.com/questions/63951783/laravel-queue-and-jobs-how-to-re-run-failed-job-later-on