Créer une tâche
+ Nouvelle tâche dans la page des Tâches, ou Modifier sur une carte, ouvre l'éditeur de tâche. Un seul Enregistrer, en haut, écrit la tâche entière dans jobs.toml, recharge le planificateur et revient à la page des Tâches ; Annuler quitte sans enregistrer. Une tâche invalide est refusée avec un message en haut de l'éditeur.
Seules les tâches modifiées sont réécrites : les autres tâches de jobs.toml conservent leur texte à l'identique — commentaires, références ${…}, step_defaults —, et la tâche enregistrée retrouve ses références ${…} partout où la valeur correspond toujours.
Vue d'ensemble
Les sections
Tâche
| Champ | Remarques |
|---|---|
| Identifiant | Lettres, chiffres, - et _. Figé une fois la tâche créée — il indexe l'historique des exécutions. Pour renommer : Cloner sous le nouvel identifiant, puis supprimer l'ancienne tâche. |
| Description | Affichée sur la ligne de la tâche et sur sa page. |
| Planification (cron) | Des choix tout faits (Manuelle, Horaire, Quotidienne, Hebdomadaire, Mensuelle) ou un cron à cinq zones ; Prochaines exécutions en affiche les cinq suivantes. Vide : tâche manuelle. Voir Planifications. |
| Fuseau horaire | Le nom IANA dans lequel la planification est évaluée. |
| Étiquettes | Libellés libres, utilisés par le filtre de la page des Tâches. |
| Activée | Active ou suspend la planification propre de la tâche. |
Préréglages & plannings
Les préréglages s'enregistrent depuis Exécuter avec des paramètres → Enregistrer comme préréglage…. Ici, chacun peut recevoir sa propre Planification (cron), son Fuseau horaire et une case Planning activé — voir Préréglages planifiables.
Politique de réessai
Réessayer les étapes en échec, puis Tentatives (au total), Délai (fixed ou exponential) et Secondes de base entre deux tentatives. La politique s'applique à chaque étape.
Alertes
Envoyer des alertes avec En cas d'échec prévient les Destinataires quand une exécution échoue, dans la cloche et par e-mail. Écrire les destinataires sous la forme user:alice, role:ops ou email:ops@example.com — une entrée sans préfixe est prise pour une adresse e-mail. Avertir si une exécution dépasse (minutes) leur envoie en outre une notification dès qu'une exécution dure au moins ce temps, quelle que soit son issue. Doit avoir réussi avant fixe une échéance (07:00, dans le fuseau horaire de la tâche) : un jour où la tâche est planifiée, si aucune exécution n'a réussi à cette heure, les destinataires reçoivent Job <id> is late — encore en cours, en échec ou jamais démarrée. Pour plusieurs tâches à la fois ou d'autres événements, passer par une règle de notification : voir Notifications.
Paramètres partagés
Des paires nom / valeur fusionnées dans les arguments de chaque étape python (la valeur propre d'une étape l'emporte). Elles apparaissent aussi, modifiables, dans Exécuter avec des paramètres. La section s'intitule Shared params dans l'éditeur.
Étapes
La barre Ajouter une étape : propose un bouton par type — sql_query, sql_copy, file_load, python, http, ldap_sync, call_job. Chaque étape est une carte : un clic ouvre ou replie son formulaire ; les flèches la montent ou la descendent ; l'icône de copie la clone ; la corbeille la supprime. Les champs de chaque type sont décrits dans Étapes.
Uniquement dans jobs.toml
Quelques réglages n'ont pas de champ dans l'éditeur ; ils se définissent dans jobs.toml :
| Clé | Défaut | Signification |
|---|---|---|
log_level (tâche) | INFO | Le niveau des exécutions planifiées : WARNING, INFO ou DEBUG. Une exécution manuelle choisit le sien dans Exécuter avec des paramètres. |
timeout_seconds (tâche) | 14400 | L'exécution entière s'arrête après ce délai. |
enabled (étape) | true | false saute toujours l'étape. |
timeout_seconds (étape) | 3600 | L'étape s'arrête après ce délai. |
pool (sql_query, blocs de sql_copy) | — | Un autre pool du connecteur — voir Étapes. |
[[jobs]]
id = "sales-load"
description = "Fichiers de ventes mensuels vers la table de faits"
schedule = "0 2 * * *"
timezone = "Europe/Paris"
tags = ["etl"]
log_level = "INFO"
[jobs.params]
period = "2026-10"
[jobs.retry]
attempts = 3
backoff = "exponential"
base_seconds = 60
[[jobs.steps]]
type = "file_load"
name = "load-sales"
# … voir Étapes → Chargement de fichier
Conseils
- Donner à chaque étape un nom court verbe-objet (
load-sales,refresh-totals) : c'est ce qu'affiche le détail de l'exécution. - Garder une tâche par flux métier ; enchaîner les tâches par une étape
call_jobplutôt que de copier des étapes. - Enregistrer, puis lancer une fois à la main avec Exécuter avec des paramètres en
DEBUGavant d'activer la planification.