Aller au contenu principal

Queue

Candidats à la queue

  • Imports et exports
  • Notifications
  • Appels API externes
  • Rapports
  • Parsing lourd
  • Génération d'embeddings IA (CPU-intensive)

Règles

  • Les jobs doivent être idempotents quand possible
  • Définir le comportement de retry et timeout
  • Logger les échecs avec des IDs stables
  • Ne pas sérialiser de gros payloads

Lancer le worker (développement)

php artisan queue:work --tries=3 --timeout=60

Pattern job

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

public int $tries = 3;
public int $timeout = 300;

public function __construct(
private readonly int $importId,
) {}

public function handle(AnalysesImportService $service): void
{
$service->processImport($this->importId);
}

public function failed(Throwable $e): void
{
Log::error('Import job failed', [
'import_id' => $this->importId,
'error' => $e->getMessage(),
]);
}
}