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:
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: