Parçacıklara Dön
LaravelPHP

Laravel İş Kuyruğu

Zaman alan görevleri asenkron olarak yönetmek için kuyruğa alınabilir iş.

laravelqueuejobasync
<?php

namespace App\Jobs;

use App\Mail\WelcomeEmail;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;

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

    public int 400">$tries = 3;
    public int 400">$backoff = 60;

    public function __construct(public User 400">$user) {}

    public function handle(): void
    {
        Mail::to(400">$this->user->email)->send(new WelcomeEmail(400">$this->user));
    }

    public function failed(\Throwable 400">$exception): void
    {
        logger()->error(class=class="text-emerald-400">"text-emerald-400">'Welcome email failed', [
            class=class="text-emerald-400">"text-emerald-400">'user' => 400">$this->user->id,
            class=class="text-emerald-400">"text-emerald-400">'error' => 400">$exception->getMessage(),
        ]);
    }
}

class=class="text-emerald-400">"text-gray">// Dispatch: SendWelcomeEmail::dispatch(400">$user);
class=class="text-emerald-400">"text-gray">// Delayed: SendWelcomeEmail::dispatch(400">$user)->delay(now()->addMinutes(5));

Nasıl Kullanılır

Şu komutla oluşturun: php artisan make:job SendWelcomeEmail. Controller'lardan veya event'lerden dispatch edin: SendWelcomeEmail::dispatch($user). İşler php artisan queue:work ile arka planda çalışır. Otomatik yeniden deneme için tries ve backoff kullanın.

İlgili Teknoloji

Laravel

Aklınızda Bir Proje mi Var?

Fikrinizi nasıl hayata geçirebileceğimizi konuşalım. İlk konseptten üretime hazır ürüne kadar — yanınızdayız.

veya ücretsiz görüşme ayarlayın