Laravel Queues

Laravel
Tempo de leitura: 3 minutos

Laravel Queues: O Laravel oferece um sistema de filas robusto e flexível, conhecido como Laravel Queues, que permite processar tarefas de forma assíncrona. Isso significa que tarefas que consomem muito tempo, como o envio de e-mails em massa ou a geração de relatórios, podem ser adiadas para serem executadas em segundo plano, sem afetar a responsividade da sua aplicação.

Neste artigo, vamos explorar as principais funcionalidades do Laravel Queues, desde a criação de jobs até a limpeza da fila, e como elas podem melhorar o desempenho e a escalabilidade da sua aplicação.

Criando Jobs

Um job no Laravel é uma classe que encapsula uma tarefa a ser executada. Para criar um job, utilize o comando Artisan:

Bash

php artisan make:job ProcessOrder

Dentro da classe do job, você implementa o método handle que contém a lógica da tarefa a ser executada:

PHP

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

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

    public $order;

    public function __construct($order)
    {
        $order = $order;
    }

    public function handle()
    {
        // Lógica para processar o pedido, como enviar um e-mail de confirmação
        // ...
    }
}

Dispatch Jobs

Para colocar um job na fila, utilize o método dispatch:

PHP

$order = Order::find(1);
ProcessOrder::dispatch($order);

Job Middleware

O Laravel permite criar middleware para jobs, que são executados antes ou depois da execução do job. Isso é útil para realizar tarefas como autenticação, autorização ou logging.

PHP

php artisan make:middleware LogJob

Para aplicar um middleware a um job, utilize o método withChain:

PHP

ProcessOrder::dispatch($order)->withChain([
    LogJob::class,
]);

Queueing Clousures

Além de criar classes de jobs, você também pode colocar closures diretamente na fila:

PHP

Queue::push(function () {
    // Lógica a ser executada
});

Limpando Jobs da Queue

Para limpar os jobs da fila, você pode utilizar o comando Artisan:

Bash

php artisan queue:clear
  • Limpando jobs falhados:

Bash

php artisan queue:failed
  • Relatando jobs falhados:

Bash

php artisan queue:failed --list

Conclusão

Laravel Queues: O Laravel Queues é uma ferramenta poderosa para otimizar o desempenho da sua aplicação e permitir que você execute tarefas de forma assíncrona. Ao utilizar jobs, você pode melhorar a responsividade da sua aplicação, especialmente em cenários com alto volume de requisições.

Mas antes de dominar o Laravel, se for o seu caso, toda jornada tem um início. Vamos entender quais são os conhecimentos básicos necessários para aproveitar ao máximo este poderoso framework. Para iniciar seus estudos no Laravel, você precisará dominar as seguintes tecnologias:

HTML
HTML
CSS
CSS
Javascript
JavaScript
SQL
SQL
Capa Curso PHP
PHP

E se você gosta do nosso conteúdo, não deixe de contribuir adquirindo os serviços e produtos dos nossos apoiadores e empresas que somos associados:

Hospedagem Hostinger
Ofertas Amazon
Amazon Prime
Author: Thiago Rossi