web-dev-qa-db-fra.com

Le débit d'air dépend de l'explication

Selon les documents officiels Airflow , le task instances directement en amont de task doit être dans un état de réussite. De plus, si vous avez défini depend_on_past = True, l'instance de tâche précédente doit avoir réussi (sauf s'il s'agit de la première exécution de cette tâche).

Comme tout le monde le sait, la tâche est une sorte d'opérateur "instancié et paramétré".

Maintenant, c'est ce qui me confond. Par exemple:

DAG: {op_1} -> {op_2} -> {op_3}

{op_2} est un simple PythonOperator qui prend 1 paramètre de {op_1} et fait des choses;

À ma connaissance, op_2 (param_1) et op_2 (param_2) sont considérés comme 2 tâches différentes.

Donné depends_on_past est défini sur True, puis:

  1. Si op_2 (param_1) est toujours en cours d'exécution; peut-on exécuter op_2 (param_2)?
  2. Si op_2 (param_1) échoue lors de l'exécution précédente; op_2 (param_1) peut-il être exécuté lors de l'exécution en cours?
9
WeiHao

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

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

Donc, sauf si une exécution précédente de votre DAG a échoué, le depends_on_past ne doit pas être un facteur, cela n'affectera pas du tout l'exécution en cours si l'exécution précédente a exécuté les tâches avec succès.

9
Meghdeep Ray