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ôme | Cause probable |
|---|---|
| Toutes les tâches en erreur | Service externe indisponible (API Magento, transporteur) |
| Deadlocks répétés | Concurrence sur les mêmes enregistrements |
| Tâches lentes | Requête non optimisée, grand volume de données |
| Processeur bloqué | Process zombie, lock non relâché |
Étape 5 : Résoudre et valider
- Corriger la cause racine
- Relancer le processeur
- Vérifier que les tâches sont consommées normalement
- 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