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