Implementasi Queue & Job Processing di Laravel

Oleh Raffi Deas Alvaro di 25 Sep 2025 | 20:46
Raffi Deas Alvaro

Raffi Deas Alvaro

Siswa
Postingan: 1
Anggota sejak: 12 Sep 2025

Pendahuluan

Dalam pengembangan aplikasi web, kita sering menemukan proses yang memerlukan waktu lama. Contohnya saja seperti mengirim email massal, membuat laporan PDF, atau memproses gambar. Kalau proses tersebut dijalankan secara langsung, maka pengguna akan menunggu lama hingga selesai, bahkan bisa menyebabkan aplikasi menjadi lambat.

Untuk mengatasi masalah tersebut, Laravel menyediakan fitur Queue & Job Processing. Karena fitur ini, kita bisa menunda eksekusi tugas berat ke dalam antrian (queue), lalu menjalankannya di background dengan bantuan worker. Hasil akhirnya aplikasi tetap responsif dan pengalaman pengguna menjadi lebih baik.

Langkah - langkah (Studi Kasus Kirim Email)

1. Konfigurasi Queue
Buka file .env , lalu ubah konfigurasi QUEUE_CONNECTION dan DB_CONNECTION. Kalian bisa pilih driver sync, database, redis, dan lain lain tetapi untuk pembelajaran kita pakai database. 





Selanjutnya, buat tabel queue di terminal


php artisan queue:table

php artisan migrate


2. Membuat Mailable 

Sekarang buat mailable yang ingin dikirim

php artisan make:mail SendEmailMailable


Lalu di file "app/Mail/SendEmailMailable.php " buat logika seperti ini



Jadi tugas dari mailable ini adalah membuat format email yang akan kita kirim

3. Membuat View Email

Buat file baru di  resources/views/emails/send.blade.php 



Ini adalah contoh template emailnya

4. Membuat Job

Buat job baru di terminal

php artisan make:job SendEmailJob


Lalu di file "app/Mail/SendEmailJob.php " buat logika sederhana



Nah untuk tugas job adalah memasukkan task ke antrian dan mengeksekusi saat worker jalan

5. Controller untuk dispatch Job

Selanjutnya kalian tambahkan di routes/web.php


6. Menjalankan worker

Nah karena jobnya sudah dibuat kita jalankan worker agar job dieksekusi

php artisan queue:work

Kalau berhasil, laravel akan mengambil job dari tabel jobs dan mengirim email di background

Catatan : Kalau ada error coba lakukan php artisan migrate:fresh

7. Hasil Akhir



Saat membuka http://localhost:8000/kirim-email, job akan masuk ke queue nah nanti worker (queue:work) akan memproses job tersebut. Selanjutnya email dikirim ke inbox sesuai alamat tujuan



25 Sep 2025 | 20:46
0 Suka

Laporkan

Silakan jelaskan laporan secara singkat dan jelas.