Laravel Queue Server
Summary
Menjaga Queue Laravel Tetap Berjalan di Server
Untuk memastikan queue Laravel tetap berjalan di server, ada beberapa pendekatan yang bisa Anda gunakan:
- Menggunakan Supervisor (Rekomendasi)
Supervisor adalah proses control system yang bisa digunakan untuk mengontrol dan memonitor proses Laravel queue worker.
Langkah-langkah instalasi dan konfigurasi:
Install Supervisor: bash
1
2
sudo apt-get update
sudo apt-get install supervisor
Buat file konfigurasi untuk queue worker (biasanya di /etc/supervisor/conf.d/laravel-worker.conf): ini
1
2
3
4
5
6
7
8
9
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /path/to/your/project/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=8
redirect_stderr=true
stdout_logfile=/path/to/your/project/storage/logs/worker.log
Mulai dan aktifkan Supervisor: bash
1
2
3
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
- Menggunakan Systemd (Untuk Linux Modern)
Buat file service di /etc/systemd/system/laravel-queue.service: ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Laravel Queue Worker
[Service]
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /path/to/your/project/artisan queue:work --sleep=3 --tries=3
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=laravel-queue
bash
[Install]
WantedBy=multi-user.target
Aktifkan dan jalankan service:
1
2
3
4
sudo systemctl daemon-reload
sudo systemctl enable laravel-queue
sudo systemctl start laravel-queue
- Menggunakan Cron Job (Opsional)
Anda bisa menjadwalkan queue worker untuk dijalankan secara berkala: bash
1
* * * * * cd /path-to-your-project && php artisan queue:work --once >> /dev/null 2>&1
Tips Tambahan:
-
Untuk queue yang penting, gunakan –tries untuk menentukan jumlah percobaan ulang
-
Gunakan –timeout untuk mencegah worker berjalan terlalu lama
-
Monitor log queue worker secara berkala
-
Untuk aplikasi produksi, pertimbangkan menggunakan queue driver seperti Redis atau database daripada sync
Pastikan untuk menyesuaikan path dan pengaturan sesuai dengan lingkungan server Anda