Tutorial Laravel Queue (Laravel 8)


Assalamu'alaikum Wr. Wb.

             Pada tutorial kali ini saya akan membahas salah satu fitur pada Framework Laravel yaitu adalah Laravel Queue. Laravel Queue dapat digunakan pada project yang menggunakan Framework Laravel untuk mempercepat sebuah proses dengan melanjutkan proses di belakang layar, misal jika anda memiliki fitur pengiriman email pada aplikasi laravel anda, dengan metode biasa maka user perlu menunggu sampai proses API pengiriman email selesai dilakukan baru mendapatkan response dari API pengiriman email, dengan adanya Laravel Queue user dapat langsung mendapatkan response dari API pengiriman email dan proses pengiriman email diteruskan di latar belakang. Pada tutorial kali ini saya menggunakan Framework Laravel versi 8 dan langsung saja untuk tutorialnya adalah sebagai berikut:

  1. Menyiapkan project laravel anda
             
    Langkah pertama yang perlu anda siapkan adalah menyiapkan project laravel yang ingin anda implementasikan fitur Laravel Queue, jika anda belum pernah memiliki project laravel sebelumnya maka anda dapat memulai membuat project laravel di sini.

  2. Membuat tabel Laravel Queue di database
             
    Langkah selanjutnya agar dapat menggunakan Laravel Queue pada project Laravel anda, anda perlu membuat tabel yang diperlukan untuk mengimplementasikan Laravel Queue, pertama-tama anda harus mempublis tabel tersebut dengan perintah berikut:

              php artisan queue:table

              Dengan perintah di atas maka anda akan mendapatkan file migration untuk tabel jobs di direktory database/migrations, lalu setelah tabel yang dibutuhkan untuk Laravel Queue sudah anda miliki, langkah selanjutnya anda jalankan perintah berikut untuk melakukan migrasi:

              php artisan migrate


  3. Mengonfigurasi config/queue.php
             
    Selanjutnya setelah kita memiliki tabel untuk jobs yang kita jalankan menggunakan Laravel Queue, kita perlu mengonfigurasi Laravel Queue kita agar jobs-jobs tersebut masuk ke database jobs yang sudah kita buat sebelumnya, untuk mengonfigurasi hal tersebut anda dapat masuk ke file .env dan temukan variabel QUEUE_CONNECTION yang secara default value nya adalah sync maka ubah value sync tersebut dengan value database, atau anda dapat mengonfigurasinya menggunakan value lain sesuai referensi di file config/queue.php, untuk konfigurasi baru QUEUE_CONNECTION akan terlihat di file .env seperti ini:

               QUEUE_CONNECTION=database

  4. Membuat file jobs
             
    Untuk menjalankan sebuah proses dibelakang layar (misal pada tutorial kali ini proses untuk mengirim email) maka kita perlu membuat file jobs nya terlebih dahulu, anda dapat membuat file tersebut menggunakan perintah:

               php artisan make:job SendEmailJob

              Selanjutnya ada perlu menambahkan kode untuk menjalankan proses yang akan dijalankan dibelakang layar ke dalam function handle di dalam file app/Jobs/SendEmailJob.php.

          ...
          use Illuminate\Contracts\Queue\ShouldQueue;

         class SendEmailJob implements ShouldQueue
         {
             ...
              public function handle()
              {

               // kode proses diletakkan di sini
               }
         }

  5. Memanggil job dari file SendEmailJob
               
    Setelah file job sudah dibuat dan kita juga sudah meletakkan kode proses yang kita inginkan berlajan di belakang layar di file job kita, maka langkah terakhir adalah memanggil job yang kita buat dari controller aplikasi laravel kita, contoh kode untuk memanggil job kita adalah sebagai berikut:

          $job = new SendEmailJob();
          $this->dispatch($job);

    Kode dispatch di atas digunakan untuk menjalankan job yang diinisialisasi padavariabel $job.

Posting Komentar

0 Komentar