Crearea și Trimiterea Sarcinilor Asincrone (ShouldQueue) în Laravel

queues Laravel 11.x / Queues Q&A / Distribuie cod

Delegarea operațiunilor lente (trimitere emailuri, procesare imagini, apeluri API) către cozi asincrone în fundal.

Sintaxă
class SendInvoiceJob implements ShouldQueue / SendInvoiceJob::dispatch($invoice)->onQueue('emails')

Operațiunile consumatoare de timp nu trebuie să blocheze firul principal al cererii utilizatorului. În Laravel, orice clasă de tip Job care implementează interfața marker ShouldQueue va fi serializată automat și trimisă într-o coadă (Redis, baza de date SQL, SQS).

Metode de trimitere:

  • Job::dispatch($data): trimitere instantanee în coada implicită.
  • Job::dispatch($data)->delay(now()->addMinutes(10)): execuție întârziată.
  • Job::dispatch($data)->onQueue('high-priority'): direcționare către o coadă cu prioritate mare.
Exemplu: Job asincron cu reîncercări automate și backoff
namespace App\Jobs;

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;

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

    public int $tries = 3; // Reîncearcă de maxim 3 ori în caz de eșec
    public int $backoff = 60; // Pauză de 60s între reîncercări

    public function __construct(public User $user) {}

    public function handle(): void
    {
        // Trimitere efectivă a emailului...
    }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Crearea și Trimiterea Sarcinilor Asincrone (ShouldQueue)

Ai o nelămurire despre utilizarea comenzii Crearea și Trimiterea Sarcinilor Asincrone (ShouldQueue) sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.