Aller au contenu principal

Queues et jobs

Statut

Document de cadrage architecture — version initiale.

Objectif

Les queues et jobs doivent absorber les traitements asynchrones afin de garder l'API réactive.

Ils sont essentiels pour les tâches longues, répétitives, coûteuses ou déclenchées en arrière-plan.

État actuel visible

Le workspace montre :

  • un scheduler Laravel configuré dans api/bootstrap/app.php ;
  • deux jobs planifiés : ExpireBoosts et ExpireAlertes toutes les heures ;
  • un fichier deployment/crontab.txt exécutant artisan schedule:run chaque minute ;
  • une configuration Supervisor avec workers Laravel queue:work redis ;
  • une file default et une file mail dans deployment/supervisor.conf.

Cas d'usage jobs

DomaineExemples
MonétisationExpiration des boosts, webhooks Stripe, logs.
MairieExpiration des alertes, notifications citoyennes.
NotificationsEmails, push, invitations, messages.
MédiasCompression, génération de variantes, traitement documents.
IAGénérations longues, modération assistée, batchs de résumé.
StatistiquesAgrégation, nettoyage, consolidation.
SynchronisationsImports, rebuild, propagation inter-apps.
PlayLoopPréparation de playlists, campagnes, contrôle devices.

Files recommandées cible

FileUsage
defaultJobs courants.
mailEmails et invitations.
mediaTraitements fichiers.
notificationsPush et alertes.
aiRequêtes IA longues ou coûteuses.
analyticsAgrégations statistiques.
criticalTâches courtes et importantes, à définir avec prudence.

Les files au-delà de default et mail relèvent de la vision cible.

Principes

  • Ne pas bloquer une requête HTTP pour un traitement long.
  • Isoler les jobs lourds des jobs critiques.
  • Définir retries, timeout et dead-letter.
  • Journaliser les erreurs.
  • Rendre les jobs idempotents quand possible.
  • Surveiller la taille et l'âge des files.

Risques et points à clarifier

  • Backend Redis à confirmer selon environnement réel.
  • Politique de retry par type de job à définir.
  • Dead-letter et replay à documenter.
  • Monitoring des workers à mettre en place.
  • Priorisation des alertes mairie et notifications à cadrer.