Creer un cron
Quand creer un cron, comment le declarer, les expressions courantes, tester et monitorer.
Creer un cron
Un cron automatise une action recurrente. Avant d'en creer un, verifier qu'il est vraiment necessaire.
Quand un cron est necessaire
| Situation | Cron necessaire ? |
|---|---|
| Action repetee a heure fixe | Oui |
| Action declenchee par un evenement | Non (utiliser un trigger) |
| Action ponctuelle | Non (lancer manuellement) |
| Verification periodique | Oui |
| Rapport regulier | Oui |
!!! warning "Pas de cron pour tout" Un cron qui tourne sans utilite consomme des tokens et du temps CPU. Chaque cron doit avoir un objectif mesurable.
Format de declaration
Les crons sont declares dans .openclaw/cron/jobs.json.
{
"crons": [
{
"id": "CRON-018",
"name": "Mon nouveau cron",
"agent": "ops-manager",
"schedule": "0 9 * * *",
"action": "health_check",
"params": {
"scope": "all",
"notify": true
},
"delivery": "telegram",
"enabled": true
}
]
}Champs obligatoires
| Champ | Type | Description |
|---|---|---|
id | string | Identifiant unique (CRON-XXX) |
name | string | Nom lisible |
agent | string | Slug de l'agent executant |
schedule | string | Expression cron standard |
action | string | Action a declencher |
delivery | string | Canal de livraison (telegram, notion, email) |
enabled | boolean | Actif ou non |
Champs optionnels
| Champ | Type | Description |
|---|---|---|
params | object | Parametres passes a l'action |
timeout | number | Timeout en secondes (defaut 300) |
retry | number | Nombre de tentatives en cas d'echec (defaut 1) |
depends_on | string[] | Crons qui doivent avoir tourne avant |
Expressions cron courantes
* * * * *
| | | | |
| | | | +--- Jour de la semaine (0=Dim, 6=Sam)
| | | +-------- Mois (1-12)
| | +------------- Jour du mois (1-31)
| +------------------ Heure (0-23)
+----------------------- Minute (0-59)| Expression | Signification |
|---|---|
0 * * * * | Toutes les heures |
0 8 * * * | Tous les jours a 8h |
0 9,13,18 * * * | 3 fois par jour (9h, 13h, 18h) |
0 */4 * * * | Toutes les 4 heures |
0 10 * * 0 | Dimanche a 10h |
0 10 1 * * | Le 1er de chaque mois a 10h |
30 15 * * 1-5 | Lundi-vendredi a 15h30 |
0 3 * * * | Tous les jours a 3h (nuit) |
Tester avant d'activer
Toujours tester un cron avant de le mettre en production.
Etape 1 : Valider la syntaxe
openclaw cron validateEtape 2 : Lancer manuellement
openclaw cron run CRON-018 --dry-runLe --dry-run execute l'action sans envoyer de notification ni modifier de donnees.
Etape 3 : Verifier le resultat
openclaw cron logs CRON-018 --last 5Etape 4 : Activer
Mettre "enabled": true dans jobs.json et redemarrer le scheduler.
openclaw cron reloadMonitorer
Chaque execution de cron genere un log.
# Voir les 10 derniers runs
openclaw cron logs --last 10
# Voir les echecs
openclaw cron logs --status failed
# Voir un cron specifique
openclaw cron logs CRON-018 --last 5!!! tip "Alerte sur echec" Configurer une alerte Telegram si un cron critique echoue 2 fois de suite. Les crons CRON-001 (health) et CRON-002 (brief) sont critiques.
Checklist creation
- Le cron a un objectif clair et mesurable
- L'expression cron est correcte
- L'agent cible existe et peut executer l'action
- Le dry-run passe sans erreur
- La notification arrive sur le bon canal
- Le cron est documente dans la vue d'ensemble
- L'ID suit la convention CRON-XXX
Lecture liee
- Vue d'ensemble des crons pour le tableau complet
- Modifier un cron pour ajuster apres creation