Exécution du pipeline des tâches

En résumé

  • Exécuter une Planification revient à lancer l’exécution de chacune des tâches du pipeline

  • DC-Maestro n’exécute pas les tâches lui-même mais envoie des demandes d’exécution

  • Seul le Propriétaire et les contributeurs peuvent gérer l’exécution (manuelle ou automatique)

  • Il est impossible d’exécuter une Planification inactive

  • Les tâches DataChain sont toujours exécutées au nom du Propriétaire de la Planification, et donc en fonction de ses droits et permissions DataChain

  • Chaque exécution met à jour le statut d’exécution global de la Planification et le statut des tâches

  • Le journal d’exécution détaille chaque exécution de tâche et les erreurs potentiellement rencontrées

  • L’ordonnancement et le résultat d’exécution des tâches reliées entre elles conditionnent l’ordre d’exécution des tâches

  • Une tâche en échec bloque l’exécution des tâches suivantes

  • L’exécution peut être manuelle et automatique

  • L’historique d’exécution permet de consulter les exécutions passées.

  • Il existe une différence entre l’ordre "logique" d’exécution, visible dans le Workflow et la liste des exécutions, et l’ordre réel d’exécution des tâches, visible dans l’historique d’exécution.

Lors de la création d’une Planification, l’orchestrateur doit synchroniser les tâches du pipeline.
Il n’est pas possible d’exécuter la Planification pendant cette phase.
planifications synchronization
Exécution -Planification en cours de synchronisation
Si une erreur de synchronisation se produit, essayez d’enregistrer à nouveau la Planification ou patienter quelques minutes.

Statut d’exécution

Les statuts d’exécution renseignent sur l’état des tâches et des Planifications.

On distingue 2 statuts d’exécution
  • Un statut d’exécution propre à chaque tâche

  • Un statut d’exécution global, porté par la Planification et qui dépend du résultat de l’ensemble des statuts des tâches

Les statuts sont mis à jour à chaque exécution.
Les statuts des exécutions passées sont consultables depuis l’onglet historique d’exécution de la Planification.

Statut d’exécution global

Le statut d’exécution de la Planification est mis à jour à chaque exécution, en fonction du résultat des statuts d’exécution des tâches.
Ce statut est visible depuis la liste des Planifications et l’historique d’exécution de la Planification.
Il indique toujours le statut de la tâche la plus impactante.

Exécution -Statut d’exécution global
Statut Signification

status schedule waiting

La Planification n’a jamais été exécutée

status schedule in progress

Au moins une tâche est en cours d’exécution

status schedule success

L’ensemble des tâches ont été exécutées avec succès

status schedule failed

Au moins une tâche est en échec

Statut d’exécution des tâches

Chaque tâche possède un statut d’exécution propre, mis à jour à chaque exécution.

Exécution -Statut d’exécution des tâches
Statut d’exécution spécifique Signification

status none

La tâche n’a pas encore été exécutée

status waiting

La tâche se prépare à être exécutée

status in progress

La tâche est en cours d’exécution

status success

La tâche a été exécutée avec succès

status failed

La tâche a rencontré une erreur bloquante et n’a pas été exécutée

status blocked

La tâche n’a pas été exécutée car la tâche précédente est en échec

Journal d’exécution

Chaque exécution de tâche génère un fichier appelé journal d’exécution.
Pour le consulter, cliquer sur le statut d’une tâche, depuis la liste des Planifications, ou depuis l’historique d’une Planification.
Le journal contient de nombreuses informations et peut vous renseigner sur les problèmes rencontrés lors de l’exécution.

Un léger décalage de temps est possible par exemple si la Planification vient d’être exécutée. Dans ce cas, patienter quelques minutes.
Il est impossible d’afficher le journal d’une tâche qui été supprimée

Historique d’exécution

L’historique d’exécution permet d’apprécier l’évolution des exécutions dans le temps et de consulter le journal d’une tâche lors d’une exécution passée.

Historique d’exécution.

Ordre d’exécution

Il est important de noter que DC-Maestro n’exécute pas lui-même les tâches mais envoie des demandes d’exécution (par exemple à DataChain).
Par conséquent, l’ordre d’exécution des tâches n’est pas totalement dépendant de DC-Maestro.

Si les tâches ne sont pas reliées entre elles, les demandes d’exécution sont envoyées en parallèle et dans un ordre aléatoire.
Par exemple, si DC-Maestro envoie 3 tâches DataChainCore à exécuter en parallèle, l’ordre d’exécution est défini par DataChainCore, au moment de la réception de la requête et en fonction de la disponibilité du serveur.

Pour définir un ordre d’envoi précis, il est nécessaire de relier les tâches entre elles à l’aide du Workflow.
Si le Workflow comporte à la fois des tâches reliées et non reliées, DC-Maestro envoie une demande d’exécution en parallèle des tâches non reliées et du pipeline dont les tâches sont exécutées dans l’ordre défini par ce dernier.

Afin de proposer une vue harmonisée et partagée pour l’ensemble des Planifications, les tâches sont automatiquement réorganisées à chaque sauvegarde, ou au clic sur le bouton Réorganiser.

Dans l’exemple ci-dessous, l’exécution de la dernière tâche a été bloquée à cause de l’échec d’une des tâches qui la précède.

workflow task order.

L’ordre est défini par le lien entrée/sortie (gauche et droite) mais pas haut et bas.
Deux tâches reliées à une même tâche précédente seront exécutées indépendamment l’une de l’autre (simultanément, avant ou après).

Ordre logique et ordre effectif d’exécution

L’ordre logique d’exécution visible dans la liste des exécution est calculé à partir de l’ordonnancement des tâches existantes définies dans le Workflow.

Cet ordre peut différer de l’ordre effectif d’une exécution donnée, visible dans l’historique.
L’historique permet de connaître précisément dans quel ordre les tâches planifiée pour une exécution donnée on effectivement été exécutées par l’orchestrateur.

Type d’exécution

Le type d’exécution peut être :

  • uniquement manuel : l’utilisateur doit être connecté et cliquer sur Play

  • automatique : la Planification s’exécute indépendamment des utilisateurs connectés, à la fréquence définie et peut aussi être exécutée manuelle

Le type est modifiable depuis l’onglet "Paramètres".

Exécution manuelle

Une Planification manuelle peut être exécutée librement, selon les besoins.
C’est le choix idéal pour les Planifications à exécuter ponctuellement ou dont la fréquence est impossible à prévoir à l’avance.

Nous recommandons de choisir ce mode à la création d’une Planification afin de tester le pipeline de tâches librement.

Exécution automatique

Une Planification automatique active s’exécute en fonction de la fréquence définie, indépendamment des utilisateurs connectés.
C’est le choix parfait lors du passage en production du traitement des données d’un pipeline stable.

Depuis la liste des exécutions, la fréquence du CRON et la date de la prochaine exécution programmée sont indiquées en heure locale et en UTC.

Detail du CRON et de la prochaine exécution programmée.

Si la Planification est en cours d’exécution, il est possible de l’inactiver et de connaître la date de la prochaine exécution.