Triage des incidents cron
Quand utiliser ce runbook
- Alerte de production sur un cronjob en échec
- Cronjob qui ne produit plus les résultats attendus
- Comportement anormal détecté (données manquantes, retard de traitement)
Étape 1 : Identifier le cronjob affecté
# Vérifier les logs récents du cronjob concerné
tail -100 /var/log/logidav/<command-name>.log
# Vérifier si le processus tourne encore
ps aux | grep "<command-name>"
# Vérifier les locks (si LockableTrait utilisé)
# Adapter selon le mécanisme de lock du projet
Étape 2 : Classifier la sévérité
Utiliser la classification par risque :
| Niveau | Commandes concernées | Action |
|---|---|---|
| Critique | Ventes, paiements, stock, remboursements | Intervention immédiate |
| Élevée | Produits, sync, import/export | Intervention dans l'heure |
| Moyenne | Logs, stats, alertes, notifications | Intervention dans la journée |
Étape 3 : Diagnostiquer la cause
Vérifications rapides :
- Le cronjob tourne-t-il encore ? → processus zombie, lock bloqué
- L'API externe répond-elle ? → timeout Magento, transporteur indisponible
- La base de données est-elle accessible ? → connexion perdue, deadlock
- Les données en entrée sont-elles valides ? → payload Magento corrompu, données manquantes
- Y a-t-il eu un déploiement récent ? → régression code, configuration changée
Étape 4 : Actions correctives
Processus zombie / lock bloqué
# Identifier le PID
ps aux | grep "<command-name>"
# Tuer le processus si nécessaire (avec confirmation)
kill <PID>
# Relancer le cronjob manuellement
php bin/console <command-name>
API externe indisponible
- Vérifier la connectivité :
curl -I <api-url> - Consulter le status page du service externe
- Attendre la récupération ou contacter le support du fournisseur
- Relancer le cronjob après récupération
Erreur de données
- Identifier l'enregistrement problématique dans les logs
- Corriger les données si possible
- Relancer le cronjob
- Si le curseur a avancé, voir Import des ventes pour la stratégie de rejeu
Étape 5 : Vérification post-incident
- Confirmer que le cronjob a repris son cycle normal
- Vérifier les données produites (complétude, cohérence)
- Surveiller les exécutions suivantes
- Documenter l'incident et la résolution