从中间任务重新运行气流滞后,并继续运行直到所有下游任务结束。(从任何任务恢复气流DAG)

时间:2018-10-09 14:38:00

标签: airflow

嗨,我是Apache Airflow的新手,我有很多依赖关系可以说

任务A >>任务B >>任务C >>任务D >>任务E

  1. 是否可以从中间任务(例如任务C)运行Airflow DAG?

  2. 在分支的情况下是否可以仅运行特定分支 运算符在中间?

  3. 是否可以从上一个失败任务恢复Airflow DAG?

  4. 如果不可能,如何管理大型DAG并避免重新运行 多余的任务?

如果可能的话,请向我提供有关实施方法的建议。

1 个答案:

答案 0 :(得分:-1)

  1. 您无法手动执行。如果设置BranchPythonOperator,则可以根据BranchPythonOperator

  2. 中设置的条件,跳过任务,直到希望开始执行的任务为止。
  3. 与1相同。

  4. 是。您可以清除上游的任务,直到根源或下游,直到节点的所有叶子为止。

您可以执行以下操作:

Task A >> Task B >> Task C >> Task D
Task C >> Task E

其中C是分支运算符。 例如:

    from datetime import date
    def branch_func():
        if date.today().weekday() == 0:
            return 'task id of D'
        else:
            return 'task id of E'


    Task_C = BranchPythonOperator(
        task_id='branch_operation',
        python_callable=branch_func,
        dag=dag)

这是星期一的任务序列:

Task A >> Task B >> Task C >> Task D

这是一周中其余时间的任务序列:

Task A >> Task B >> Task C >> Task E