Jobs et workflows
C’est la frontière entre une plateforme et un datalab : un datalab exécute quand vous êtes devant l’écran, une plateforme exécute quand vous n’y êtes pas.
Les types de job
Section intitulée « Les types de job »Chaque job a un type, qui décide de ce qu’il exécute et de l’image dans laquelle il tourne.
| Type | Ce qu’il exécute | Image |
|---|---|---|
python |
un script ou un paquet Python, dépendances installées au démarrage | python |
bash |
une commande shell, pour les tâches d’exploitation | toolbox |
spark |
un traitement Spark (spark-submit), dimensionné par type d’instance |
spark-py |
lowcode |
un graphe de l’éditeur low-code, traduit en code | python |
Le contrat porte aussi des types spécialisés — docker, dbt, dask, flink, ray —, chacun
servi par sa propre image d’exécution. Un type dont l’image n’est pas configurée sur votre
installation répond 501 feature_disabled (voir images de runtime).
La création d’un job, pas à pas et en commandes, est dans le démarrage rapide.
Un run, et ce qu’on en voit
Section intitulée « Un run, et ce qu’on en voit »Un job lancé produit un run. Pendant son exécution, quatre choses sont lisibles :
- les logs, paginés par curseur — la console les suit en direct, un client d’API les rejoue depuis n’importe quel point ;
- les événements, horodatés : mise en file, démarrage, étape, fin ;
- les métriques du conteneur ;
- les fichiers produits, dans le bucket du projet.
Un run porte un statut (en file, en cours, réussi, échec, annulé, nouvelle tentative,
ignoré) et une durée. C’est ce que montre la liste des jobs.
Un job porte aussi son délai maximal (timeout_seconds) et son nombre de reprises
(max_retries) : un run qui échoue est relancé automatiquement jusqu’à ce nombre.
Workflows et planification
Section intitulée « Workflows et planification »Un workflow enchaîne des étapes en graphe : chaque étape est un job, les dépendances sont des arêtes. Une étape en échec arrête la branche qui en dépend sans emporter les autres.
Un workflow ou un job se déclenche :
- à la main, depuis la console, l’API ou un agent ;
- par une planification cron standard — sur un job, elle se pose par JSON Patch sur le champ
schedule(exemple sur la page API REST) ; - sur un événement : l’arrivée d’un fichier, la fin d’un autre workflow.
Les backfills rejouent un job planifié sur une plage de dates passées, et chaque run reçoit la date logique qu’il traite.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Orchestration, la page du site
- Images de runtime
- API REST