2 votes

Flux d'air : N'autoriser qu'une seule tâche

DAG Tree view

Existe-t-il un moyen de spécifier qu'une tâche ne peut être exécutée qu'une seule fois simultanément ? Ainsi, dans l'arbre ci-dessus où la concurrence du DAG est de 4, Airflow lancera la tâche 4 au lieu d'une seconde instance de la tâche 2 ?

Ce DAG est un peu particulier car il n'y a pas d'ordre entre les tâches. Ces tâches sont indépendantes mais liées par leur objectif et sont donc conservées dans un seul DAG afin de ne pas créer un nombre excessif de DAG à tâche unique.

max_active_runs est de 2 et dag_concurrency Je voudrais qu'il démarre les 4 tâches et qu'il ne démarre une tâche dans la suivante que si la même tâche dans la précédente est terminée.

3voto

jdimella Points 646

J'ai peut-être mal compris votre question, mais je crois que vous voulez que toutes les tâches d'un seul dagrun se terminent avant que les tâches du dagrun suivant ne commencent. Un DAG ne s'exécutera donc que lorsque l'exécution précédente sera terminée.

Si c'est le cas, vous pouvez utiliser la fonction max_active_runs paramètre du DAG permettant de limiter le nombre d'instances concurrentes en cours d'exécution d'un DAG.

Plus d'informations ici (voir le dernier point) : https://airflow.apache.org/faq.html#why-isn-t-my-task-getting-scheduled

max_active_runs définit le nombre d'instances simultanées d'un DAG qui peuvent être en cours d'exécution.

1voto

Meghdeep Ray Points 2503

De l'officiel documents pour les règles de déclenchement :

depends_on_past (booléen) lorsqu'il est défini sur True, empêche une tâche d'être déclenchée si la planification précédente de la tâche n'a pas abouti.

Les futurs DAG attendront donc que les précédents se terminent avec succès avant de s'exécuter.

1voto

Jussi Kujala Points 451

Documentation de l'opérateur de flux d'air décrit l'argument task_concurrency . Il suffit de le régler sur un.

-2voto

SMDC Points 151

Dans airflow.cfg, sous [core]. Vous trouverez

d /Le nombre d'instances de tâches autorisées à s'exécuter simultanément par l'ordonnanceur

vous êtes libre de le modifier à votre guise.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X