Pengiriman pesan e-mail secara langsung dapat memperpanjang waktu respon aplikasi, Misalnya pada saat melakukan pengisian formulir kemudian dilanjutkan menekan tombol submit dan disitu pula terdapat script pengiriman email secara langsung maka respon aplikasi itu pun akan menjadi sedikit lambat karena sedang melakukan pengiriman email terlebih dahulu. oleh karena itu banyak pengembang memilih untuk antrian pesan e-mail agar pengiriman email dilakukan setelah memproses tugas utama. Dan laravel membuatnya mudah untuk melakukan itu dengan menggunakan built-in antrian API. Antrian pesan email, menggunakan metode antrian pada pada Mail:
Pertama-tama pada .env ubah queue driver seperti dibawah ini
QUEUE_DRIVER=databaseatau jika tidak menggunakan .env konfigurasi pada file config/queue.php
'default' => env('QUEUE_DRIVER', 'database'),kemudian ketik pada shell.
php artisan queue:table
maka akan tercipta sebuah migration table yaitu jobs.
kemudian ketik lagi pada shell untuk menciptakan migration failed-table yang berfungsi untuk menginformasikan apabila ada kesalahan dalam proses queue
php artisan queue:failed-tablekemudian ketik migrate untuk menciptakan tablenya
php artisan migrate
Metode Pengiriman Email
Mail::queue('emails.welcome', $data, function ($message) { // });Jika ingin menunda pengiriman pesan antrian e-mail berdasarkan waktu, Kita dapat menggunakan metode later. misalnya later(5) maka email akan dikirim 5 detik setelah proses pengiriman ditekan:
Mail::later(5, 'emails.welcome', $data, function ($message) { // });untuk menjalankan email queue:
php artisan queue:listenuntuk menjalankan queue satu persatu
php artisan queue:worksimpan kedalam console kernel
$schedule->command('queue:work')->everyMinute();
Tidak ada komentar:
Posting Komentar