Aller au contenu principal

Débogage des files d'attente

Quand utiliser ce runbook

  • Les tâches s'accumulent dans la file d'attente sans être traitées
  • Le processeur de files semble bloqué ou lent
  • Des tâches sont en erreur répétée

Étape 1 : Vérifier l'état du processeur

# Vérifier si le processeur tourne
ps aux | grep "meduse:queue:processor"

# Si non actif, le relancer
php bin/console meduse:queue:processor --action=runQueues

Étape 2 : Inspecter la file d'attente

# Lister les tâches en attente (SQL-backed)
# Adapter la requête selon votre schéma de file d'attente
mysql -e "SELECT COUNT(*), status FROM queue_table GROUP BY status;"

Étape 3 : Identifier les tâches en erreur

Chercher les tâches marquées en erreur :

  • Vérifier les messages d'erreur associés
  • Identifier le pattern (même erreur pour plusieurs tâches ?)
  • Vérifier les logs applicatifs

Étape 4 : Diagnostiquer la cause racine

Causes fréquentes :

SymptômeCause probable
Toutes les tâches en erreurService externe indisponible (API Magento, transporteur)
Deadlocks répétésConcurrence sur les mêmes enregistrements
Tâches lentesRequête non optimisée, grand volume de données
Processeur bloquéProcess zombie, lock non relâché

Étape 5 : Résoudre et valider

  1. Corriger la cause racine
  2. Relancer le processeur
  3. Vérifier que les tâches sont consommées normalement
  4. Si des tâches sont en erreur permanente, voir Rejouer les tâches échouées

Surveillance continue

  • Superviser le processeur de files avec un process manager (systemd, supervisor)
  • Mettre en place des alertes sur l'accumulation de tâches
  • Surveiller les logs d'erreur du processeur