Supervisor untuk mengelola Laravel Queue Worker

Panduan lengkap menggunakan Supervisor untuk mengelola Laravel Queue Worker secara efisien dan otomatis.
Supervisor untuk mengelola Laravel Queue Worker

Install Supervisor

Supervisor biasanya tersedia di sebagian besar distribusi Linux. Gunakan perintah berikut untuk menginstalnya.

sudo apt update
sudo apt install supervisor

Buat File Konfigurasi

Buat file konfigurasi untuk Laravel Queue Worker di direktori konfigurasi Supervisor.

sudo nano /etc/supervisor/conf.d/laravel-worker.conf

Isi file konfigurasi dengan konten berikut.

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/your/project/artisan queue:work --sleep=3 --tries=3 --timeout=90
autostart=true
autorestart=true
user=www-data
numprocs=1
redirect_stderr=true
stdout_logfile=/path/to/your/project/storage/logs/worker.log

command: Perintah untuk menjalankan queue worker.

autostart: Mengatur Supervisor untuk memulai worker secara otomatis setelah reboot.

autorestart: Mengatur Supervisor untuk memulai ulang worker jika terjadi error.

user: Pastikan ini sesuai dengan pengguna server Anda (www-data adalah default untuk server web di Ubuntu).

stdout_logfile: Lokasi file log untuk mencatat output worker.

➔ Gantilah /path/to/your/project dengan path aplikasi Laravel Anda, misalnya /var/www/laravel.

Perbarui Supervisor

Setelah membuat file konfigurasi, beri tahu Supervisor untuk membaca konfigurasi baru.

sudo supervisorctl reread
sudo supervisorctl update

Mulai Laravel Worker

Jalankan Laravel worker dengan perintah.

sudo supervisorctl start laravel-worker:*

Cek Status Worker

Periksa apakah Laravel worker berjalan dengan benar.

sudo supervisorctl status

Outputnya harus menunjukkan status RUNNING.

Cek Log Worker

Jika ada masalah, Anda bisa memeriksa log worker untuk debugging.

tail -f /path/to/your/project/storage/logs/worker.log

Tes Queue

Kirim job ke queue untuk memastikan Supervisor bekerja dengan benar. Misalnya, tambahkan job di aplikasi Laravel Anda.

dispatch(new \App\Jobs\TestJob());

(Opsional) Tambahkan Restart Otomatis

Jika ingin restart otomatis worker setiap malam, tambahkan cron job seperti ini.

sudo nano /etc/cron.d/restart-laravel-worker

Isi dengan.

0 3 * * * root supervisorctl restart laravel-worker:*

Ini akan me-restart Laravel worker setiap hari pukul 03:00.

Posting Komentar