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