No Laravel, Redis Queue é uma ferramenta poderosa usada para lidar com tarefas demoradas e demoradas sem esperar sua conclusão. Ao usar o Redis Queue, você pode enfileirar tarefas como enviar e-mails, processar tarefas em segundo plano ou gerar relatórios e executá-los de forma assíncrona, melhorando o desempenho do aplicativo e aprimorando a experiência do usuário.
Etapas básicas para usar Redis Queue em Laravel
configurar Redis
Em primeiro lugar, você precisa instalar e configurar Redis em Laravel. Certifique-se de ter instalado o Redis pacote via Composer e configurado os Redis parâmetros de conexão no .env
arquivo.
CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
Definir trabalhos
Em seguida, você precisa definir os trabalhos que deseja colocar na fila. Esses trabalhos serão executados de forma assíncrona e independente do processamento principal do aplicativo.
// Example defining a job to send an email
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;
use Illuminate\Support\Facades\Mail;
class SendEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $user;
public function __construct($user)
{
$this->user = $user;
}
public function handle()
{
// Handle sending an email to the user
Mail::to($this->user->email)->send(new WelcomeEmail());
}
}
Colocar trabalhos na fila
Quando você deseja executar um trabalho, basta colocá-lo na fila usando as funções dispatch
ou dispatchNow
:
use App\Jobs\SendEmailJob;
use Illuminate\Support\Facades\Queue;
// Put the job into the queue and perform asynchronously
Queue::push(new SendEmailJob($user));
// Put the job into the queue and perform synchronously(without waiting)
Queue::push(new SendEmailJob($user))->dispatchNow();
Processar trabalhos da fila
Depois que o trabalho for colocado na fila, você precisará configurar um Worker para executar os trabalhos na fila. Laravel vem com um artisan command para executar o worker:
php artisan queue:work
O worker irá ouvir e executar continuamente os trabalhos na fila. Você pode configurar o worker para lidar com o número de trabalhos e o tempo de espera entre as rodadas de processamento.
Gerenciar trabalhos na fila
Laravel fornece uma interface de gerenciamento onde você pode monitorar e controlar os trabalhos na fila. Você pode visualizar o número de trabalhos pendentes, o tempo de processamento e até mesmo tentar novamente trabalhos com falha.
Conclusão O uso Redis Queue de in Laravel é uma maneira eficiente de lidar com tarefas de execução longa sem interromper o processamento principal do aplicativo. Ao usar Redis Queue, você pode melhorar o desempenho do aplicativo e aprimorar a experiência do usuário.