Le concept du Cron#
Le cron est un outil natif des systèmes Linux/Unix permettant de planifier l’exécution automatique de tâches (scripts, commandes, programmes) à des moments précis ou à intervalles réguliers.
Ces tâches sont définies dans un fichier appelé crontab (cron table), qui spécifie à quelle minute, heure, jour du mois, mois et jour de la semaine la commande doit être lancée.
Ce système est très utile pour automatiser des routines telles que des sauvegardes, des mises à jour de données, ou l'envoi de rapports.
La syntaxe d'une expression cron est composée de cinq champs obligatoires (minute, heure, jour du mois, mois, jour de la semaine), suivis de la commande à exécuter. Par exemple, 0 2 * * * /path/to/script.sh exécute le script tous les jours à 2h00 du matin.
- Intervalles :
*/5pour toutes les 5 minutes. - Plages :
1-5pour les jours de 1 à 5. - Valeurs multiples :
1,15,30pour déclencher à des moments précis.
Il est également possible d’utiliser des intervalles (*/5 pour toutes les 5 minutes), des plages (1-5) ou des valeurs multiples (1,15,30) pour affiner le déclenchement. Des plateformes comme Apache Airflow reprennent cette logique pour orchestrer les workflows, en la rendant plus flexible et observable.
La planification dans Airflow#
Airflow utilise synthase des crons pour gérer la planification des dags.
La fréquence d'exécution d'un DAG est définie par le paramètre schedule_interval. Si vous avez déjà utilisé un cron sur Linux, ce concept vous sera familier. Sinon, pas de panique, nous allons tout expliquer.
Exemple de configuration
Voici comment intégrer la planification dans la définition de votre DAG :
dag = DAG(
dag_id="etl_sales",
description="Sales ETL",
default_args=default_args,
schedule_interval="0 6 * * *",
tags=["sales", "reporting", "daily", "critical"],
catchup=False,
max_active_runs=1,
)
Comprendre la syntaxe#
Pour maîtriser le schedule_interval, il faut comprendre l'ordre des 5 colonnes :
La syntaxe du schedule_interval est basée sur le format cron, qui permet de spécifier des exécutions avec précision. Voici la signification des champs :
| Champ | Valeur | Signification |
|---|---|---|
| Minute | 0-59 | Minute exacte |
| Heure | 0-23 | Heure exacte |
| Jour du mois | 1-31 | Jour du mois |
| Mois | 1-12 | Mois |
| Jour de la semaine | 0-6 | Dimanche (0) à Samedi (6) |
Exemple pour 0 6 * * * :
- Minute : 0 (pile à l'heure)
- Heure : 6 (6 heures du matin)
- Tous les jours du mois
- Tous les mois
- Tous les jours de la semaine
Voici un guide visuel pour vous aider à mieux comprendre :

Pour simplifier la création de ces expressions, vous pouvez tester vos expressions sans vous tromper, utilisez l'outil Crontab Guru.
Les raccourcis Airflow#
Parfois, une expression cron est un peu complexe à lire. Airflow propose des "presets" (raccourcis) pour les fréquences les plus courantes :
| Valeur | Équivalent Cron | Signification |
|---|---|---|
@hourly |
0 * * * * |
Chaque heure (à la minute 0) |
@daily |
0 0 * * * |
Chaque jour à minuit |
@weekly |
0 0 * * 0 |
Chaque dimanche à minuit |
@once |
/ |
Exécuté une seule fois (lors du premier déclenchement) |
None |
/ |
Le DAG n'est jamais lancé automatiquement (manuel uniquement) |
Grâce à schedule_interval, vous pouvez automatiser l'exécution de vos workflows selon les besoins de votre projet. Dans la prochaine section, nous verrons comment gérer les dépendances entre les tâches pour structurer vos DAGs de manière optimale.
Commentaires