La facturation clients s'arrête un lundi. Personne ne remarque avant jeudi : le cron de synchronisation échouait depuis quatre jours — exit code 1 noyé dans un log non consulté. Alwaysdata avait bien exécuté la tâche ; personne ne regardait.
Alwaysdata convient aux stacks multi-langages avec crons intégrés. L'observabilité des tâches planifiées reste votre responsabilité dès que le job touche de l'argent ou des données.
Stack observabilité cron minimal
| Couche | Outil | Rôle |
|---|---|---|
| Log fichier | logs/cron-sync-YYYY-MM-DD.log | Debug post-mortem |
| Exit code | set -e / trap ERR | Échec non silencieux |
| Ping succès | Healthchecks.io, Cronitor | Alert si absent |
| Alerte | Email, Slack webhook | Humain prévenu |
| Métrique | Durée, lignes traitées | Dérive lente |
Pattern shell :
#!/bin/bash
set -euo pipefail
LOG=~/logs/sync-$(date +%F).log
exec >>"$LOG" 2>&1
echo "START $(date -Is)"
php bin/sync.php
curl -fsS -m 10 --retry 3 https://hc-ping.com/your-uuid
echo "END $(date -Is)"
Erreurs fréquentes
Cron dupliqué après migration sans désactiver l'ancien.
Chemin relatif — fonctionne en SSH, casse en cron.
Pas de lock — deux instances concurrentes corrompent les données.
Log infini — disque plein, site down.
Timezone — panel UTC vs script Europe/Paris.
Mutualisé : limites et decoupage
- Jobs < few minutes préférés ; batch par chunks.
- Queue (Redis, DB) + worker court toutes les minutes.
- Testez load après deploy PHP/Node.
Le sommet : succès silencieux, échec silencieux
Le premier incident cron enseigne ce que le panel ne montrera jamais seul.
Décider et avancer sans angle mort
- Inventaire crons avec owner et criticité.
- Logs + ping sur jobs critiques.
- Lock file anti double exec.
- Test mensuel coupure volontaire → alerte reçue ?
- Fiche Alwaysdata + guides.
Questions fréquentes
Historique crons Alwaysdata ?
Config panel + logs limités — instrumentez vous-même.
Détecter échec ?
Logs datés, webhook, healthcheck ping fin de job.
Que logger ?
Début/fin, durée, exit code, volume — pas de secrets.
Cron PHP long ?
Découpez ; queue + worker si dépasse fenêtre.
Si un cron touche la facturation ou les données clients, pas de ping succès = pas de prod.
