Em sistemas web e plataformas SaaS de alto volume, operações pesadas como envio de e-mails, emissão de NFe, comunicação com gateways e geração de relatórios jamais devem travar a requisição HTTP do usuário.
Como Implementar Workers Resilientes no Laravel 11
O Laravel oferece um ecossistema nativo de filas impecável quando combinado com Redis e Laravel Horizon.
1. Configuração do Driver Redis no config/queue.php
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
'block_for' => null,
'after_commit' => true, // Garante que a transação do banco fechou antes de despachar o job
],
2. Despachando Jobs Assíncronos com Tratamento de Falhas
namespace AppJobs;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateQueueInteractsWithQueue;
use IlluminateQueueSerializesModels;
class ProcessPaymentWebhook implements ShouldQueue
{
use InteractsWithQueue, Queueable, SerializesModels;
public $tries = 3;
public $backoff = [10, 30, 60]; // Retry exponencial
public function handle(PaymentService $service): void
{
$service->settleTransaction($this->payload);
}
}
Construindo um SaaS ou sistema robusto em Laravel?
Veja como atendo em arquitetura e código sênior na página de Desenvolvimento Laravel Sob Medida.
Veja como atendo em arquitetura e código sênior na página de Desenvolvimento Laravel Sob Medida.