Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Wie geht das Warteschlangensystem von Laravel mit Auftragswiederholungen und -fehlern um?


Wie geht das Warteschlangensystem von Laravel mit Auftragswiederholungen und -fehlern um?


Das Warteschlangensystem von Laravel behandelt Auftragswiederholungen und -fehler auf folgende Weise:

Auftragswiederholungen

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 erfolgt durch Festlegen der Eigenschaft „tries“ für die Jobklasse[2][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[2][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][5] 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://laracasts.com/discuss/channels/laravel/laravel-queue-retry-jobs-5-times
[2] https://wpwebinfotech.com/blog/laravel-queue-system/
[3] https://laravel.com/docs/5.1/queues
[4] https://laracasts.com/discuss/channels/laravel/queue-job-retry-after-x-minutes-if-failed
[5] https://stackoverflow.com/questions/30778924/laravel-4-retry-all-failed-jobs