Queue & Job — Laravel

Queue memproses tugas berat di background — user tidak perlu menunggu. Kapan pakai queue? Kirim email (lambat karena network) Process image (resize, compress) G

Queue memproses tugas berat di background — user tidak perlu menunggu.

Kapan pakai queue?

Membuat Job:

class ProcessVideoUpload implements ShouldQueue
{
    use Queueable;

    public function __construct(
        public Video $video,
    ) {}

    public function handle(): void {
        // Ini berjalan di background worker
        FFmpeg::convert($this->video->path, "mp4");
        $this->video->update(["status" => "processed"]);
    }

    public function failed(Throwable $exception): void {
        // Jika job gagal
        $this->video->update(["status" => "failed"]);
        Log::error("Video processing failed", ["id" => $this->video->id]);
    }
}

Dispatch job:

// Dari controller
ProcessVideoUpload::dispatch($video);

// Delayed
ProcessVideoUpload::dispatch($video)->delay(now()->addMinutes(5));

// Specific queue
ProcessVideoUpload::dispatch($video)->onQueue("video-processing");

Queue worker:

php artisan queue:work --queue=video-processing

Yang akan kamu pelajari