Exécution du pipeline des tâches

En résumé

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
Figure 1. 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 1. 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 2. Statut d’exécution des tâches
Statut d’exécution spécifique Signification

none

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

prepare

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

running

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

success

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

failed

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

blocked

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

ignored

La tâche n’a pas été exécutée car l’exécution a été arrêtée pendant qu’elle était en cours

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 a é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écutions 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ées pour une exécution donnée ont effectivement été exécutées par l’orchestrateur.

Type d’exécution

Le type d’exécution peut être

  • 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.

Forcer l’arrêt d’une Planification en cours d’exécution

Attention, l’usage de cette fonctionnalité peut empêcher la bonne exécution d’une chaîne de traitement.

Vous pouvez faire une demande d’arrêt lorsqu’une exécution est en cours en cliquant sur l’icône STOP STOP.
Cette fonction est particulièrement indiquée dans le cas où des tâches DC-Maestro resteraient visibles comme "en cours d’exécution" alors qu’aucun job n’est en cours dans DataChain Core.
Ce problème peut survenir lors de difficultés de synchronisation avec DataChain Core, lors de la mise à jour de l’instance par exemple.

Il arrive que l’arrêt ne soit pas possible à un instant T et que cette demande n’aboutisse pas.
Dans ce cas, cliquez à nouveau sur [STOP] pour faire une nouvelle tentative.
Si l’exécution est très rapide, l’icône Stop n’aura pas le temps d’apparaître.

L’arrêt intervient soit :

  • après l’exécution de la dernière tâche en cours, elle sera notée comme succès

  • pendant l’exécution d’une tâche : elle sera notée en échec

Les statuts des tâches non exécutées à la suite d’un arrêt peuvent varier (ignorée, aucun, bloquée).

Dans tous les cas le statut d’exécution d’une Planification qui a été stoppé sera en échec.

Notification par mail en cas d’échec

Depuis la page des paramètres d’une Planification 2 options peuvent être activées pour que le Propriétaire et/ou les Contributeurs reçoivent un email en cas d’échec d’exécution.
Le mail est envoyé pour chaque tâche en échec.