DEV Community

Zain
Zain

Posted on

Menjalankan Laravel Queue di cPanel Menggunakan Cronjob

Laravel punya sistem queue yang sangat berguna untuk menjalankan proses di background, misalnya mengirim email, generate laporan, atau memproses upload besar. Biasanya, di server VPS kita bisa menggunakan Supervisor untuk menjaga queue worker tetap hidup. Tapi di shared hosting dengan cPanel, Supervisor tidak tersedia. Solusinya: gunakan cronjob.

  1. Definisikan Queue Worker di Scheduler Di app/Console/Kernel.php, tambahkan perintah queue worker:
$schedule->command('queue:work --stop-when-empty')
    ->everyMinute()
    ->withoutOverlapping();
Enter fullscreen mode Exit fullscreen mode

Penjelasan singkat:

queue:work → menjalankan queue worker.
--stop-when-empty → worker berhenti setelah semua job selesai.
everyMinute() → worker dijalankan setiap menit.
withoutOverlapping() → mencegah duplikasi proses worker.

  1. Tambahkan Cronjob di cPanel Buka cPanel → Cron Jobs, lalu tambahkan salah satu perintah berikut (sesuai versi PHP yang digunakan di hosting Anda):
* * * * * /usr/local/bin/ea-php81 /home/{account_name}/live/artisan schedule:run
Enter fullscreen mode Exit fullscreen mode

atau jika server Anda pakai PHP 8.4:

* * * * * /usr/local/bin/ea-php84 /home/{account_name}/live/artisan schedule:run
Enter fullscreen mode Exit fullscreen mode

👉 Sesuaikan:

{account_name} → ganti dengan nama akun hosting Anda.
live → ganti dengan name directory project Laravel.
ea-php81, ea-php82, ea-php84 → pilih sesuai versi PHP aktif di cPanel Anda.

Naral.dev

Top comments (0)