Home Paket Belajar Bootcamp Instruktur

Tutorial Laravel Queue & Jobs #3 - Membuat Job dan Dispatch ke Queue

Belajar cara kerja Laravel Queue & Jobs dari dasar hingga implementasi nyata. Materi mencakup pembuatan job, dispatching, konfigurasi driver queue, worker, delayed jobs, batch jobs, failed jobs, retry mechanism, hingga studi kasus seperti pengiriman email, notifikasi, dan ekspor data. Cocok untuk pemula yang ingin membangun aplikasi Laravel yang lebih cepat dan scalable.

✅ Telah dilihat 26 kali

Rating: 5.00 ⭐

... 12 June 2026, 15:14

Job adalah class PHP biasa yang berisi logika yang akan dieksekusi worker. Teman-teman bisa buat job baru lewat Artisan:

php artisan make:job SendWelcomeEmail

Laravel akan generate file di app/Jobs/SendWelcomeEmail.php. Strukturnya kurang lebih seperti ini:

<?php

namespace App\Jobs;

use App\Mail\WelcomeMail;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Mail;

class SendWelcomeEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable;

    public function __construct(public User $user) {}

    public function handle(): void
    {
        Mail::to($this->user)->send(new WelcomeMail());
    }
}

Interface ShouldQueue adalah yang memberi tahu Laravel bahwa class ini harus dieksekusi lewat queue, bukan langsung. Method handle() berisi logika utamanya.

Untuk dispatch dari controller:

// Dispatch langsung
SendWelcomeEmail::dispatch($user);

// Dispatch dengan delay 5 menit
SendWelcomeEmail::dispatch($user)->delay(now()->addMinutes(5));

// Dispatch ke queue spesifik
SendWelcomeEmail::dispatch($user)->onQueue('emails');

// Dispatch bersyarat — hanya kalau kondisi terpenuhi
SendWelcomeEmail::dispatchIf($user->isActive(), $user);

Sesimpel itu. Controller langsung return response, dan job jalan di background.

Ada satu hal yang sering bikin bingung di awal: data yang dilempar ke constructor Job akan di-serialize dan disimpan ke queue driver. Artinya, kalau teman-teman melempar Eloquent model, Laravel cukup pintar untuk menyimpan ID-nya saja dan otomatis me-retrieve ulang saat job dieksekusi — ini disebut model binding.

Daftar eBook