Sistem antrian Laravel menangani percobaan ulang dan kegagalan tugas dengan cara berikut:
Percobaan Ulang Pekerjaan
1. Percobaan Ulang yang Dapat Dikonfigurasi: Anda dapat mengonfigurasi tugas untuk dicoba ulang jika gagal karena kesalahan sementara, sehingga meningkatkan keandalan sistem. Hal ini dilakukan dengan menyetel properti `tries` pada kelas pekerjaan[2][3].
2. Percobaan Ulang Otomatis: Laravel menyediakan percobaan ulang otomatis untuk pekerjaan yang gagal. Jika suatu tugas gagal, tugas tersebut akan dicoba ulang beberapa kali sebelum ditandai sebagai gagal[2][3].
3. Logika Coba Ulang Pekerjaan: Anda dapat menentukan metode `gagal` pada kelas pekerjaan untuk menangani kegagalan pekerjaan. Metode ini dipanggil ketika suatu pekerjaan gagal dan memungkinkan Anda melakukan tindakan spesifik pekerjaan[3].
Kegagalan Pekerjaan
1. Tabel Pekerjaan yang Gagal: Laravel menyimpan pekerjaan yang gagal dalam tabel database `failed_jobs`. Tabel ini berisi informasi tentang ID pekerjaan, koneksi, antrian, dan waktu kegagalan[3].
2. Melihat Pekerjaan yang Gagal: Anda dapat melihat semua pekerjaan yang gagal menggunakan perintah Artisan `antrian:gagal`. Perintah ini mencantumkan ID pekerjaan, koneksi, antrian, dan waktu kegagalan[3].
3. Mencoba Ulang Pekerjaan yang Gagal: Anda dapat mencoba lagi pekerjaan yang gagal menggunakan perintah Artisan `queue:retry`. Perintah ini menggunakan ID pekerjaan sebagai argumen dan mencoba kembali pekerjaan tersebut. Anda juga dapat mencoba kembali semua pekerjaan yang gagal dengan menggunakan `antrian: coba lagi semua`[3][5].
4. Menghapus Pekerjaan yang Gagal: Anda dapat menghapus pekerjaan yang gagal menggunakan perintah Artisan `queue:forget`. Perintah ini menggunakan ID pekerjaan sebagai argumen dan menghapus pekerjaan tersebut. Anda juga dapat menghapus semua pekerjaan yang gagal dengan menggunakan `queue:flush`[3].
Kesimpulan
Sistem antrian Laravel menyediakan mekanisme yang kuat untuk menangani percobaan ulang dan kegagalan tugas. Dengan mengonfigurasi percobaan ulang, melihat pekerjaan yang gagal, mencoba kembali pekerjaan yang gagal, dan menghapus pekerjaan yang gagal, Anda dapat memastikan keandalan dan efisiensi tugas pemrosesan latar belakang Anda.
Kutipan:[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-menit-jika-gagal
[5] https://stackoverflow.com/questions/30778924/laravel-4-retry-all-failed-jobs