Minggu, 25 September 2016

Konfigurasi Email Queues Atau Antrian Menggunakan Laravel

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=database
atau 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-table
kemudian 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:listen
untuk menjalankan queue satu persatu
php artisan queue:work
simpan kedalam console kernel
$schedule->command('queue:work')->everyMinute();

Tidak ada komentar:

Posting Komentar