Airflow 打破气流中传播到下游的跳过状态

Airflow 打破气流中传播到下游的跳过状态,airflow,airflow-operator,Airflow,Airflow Operator,我有以下场景/DAG |----->Task1----| |---->Task3---| start task-->| |-->Merge Task --->| | ----->End Task |----->Task2----| |---->Task4---| 当前,Task

我有以下场景/DAG

             |----->Task1----|                  |---->Task3---|
start task-->|               |-->Merge Task --->|             | ----->End Task
             |----->Task2----|                  |---->Task4---|
当前,Task、Task2、Task3和Task4是ShortCircuitOperators,当Task1和Task2中的一个短接时,将跳过所有下游任务

但我的要求是在合并任务时,打破传播到Task3和Task4的跳过状态。 因为我希望无论上游发生什么情况,都能运行任务3和任务4。
有什么办法可以做到这一点吗。?我希望按照DAG中的描述/显示将依赖项放置到位。

是的可以实现

    • 不要使用,而是使用(在
      PythonOperator中)跳过任务(有条件地执行任务/分支)

    • 您可能可以使用

    • 但是
      ShortCircuitOperator
      显然不符合most。引用这一行与链接中的问题非常相似

      。。。当ShortCircuitOperator跳过其中一个上游时 此任务也会被跳过。我不想跳过最后的任务 因为它必须报告DAG的成功

      为了避免被跳过,我使用了trigger\u rule='all\u done',但是 仍然会被跳过

      如果我使用BranchPythonOperator而不是ShortCircuitOperator final 任务未被跳过

    • 此外,do警告我们这一点(这确实是
      ShortCircuitOperator
      的预期行为)

      它会评估一个条件,如果条件为False,则会中断工作流。任何下游任务都标记为状态 “跳过”的定义

    • 对于您(可能)跳过的任务的下游任务,请使用不同的
    • 因此,不要使用默认的
      all_success
      ,而是使用类似
      none_failed
      all_done
      (取决于您的要求)

  • 可以实现

    • 不要使用,而是使用(在
      PythonOperator中)跳过任务(有条件地执行任务/分支)

    • 您可能可以使用

    • 但是
      ShortCircuitOperator
      显然不符合most。引用这一行与链接中的问题非常相似

      。。。当ShortCircuitOperator跳过其中一个上游时 此任务也会被跳过。我不想跳过最后的任务 因为它必须报告DAG的成功

      为了避免被跳过,我使用了trigger\u rule='all\u done',但是 仍然会被跳过

      如果我使用BranchPythonOperator而不是ShortCircuitOperator final 任务未被跳过

    • 此外,do警告我们这一点(这确实是
      ShortCircuitOperator
      的预期行为)

      它会评估一个条件,如果条件为False,则会中断工作流。任何下游任务都标记为状态 “跳过”的定义

    • 对于您(可能)跳过的任务的下游任务,请使用不同的
    • 因此,不要使用默认的
      all_success
      ,而是使用类似
      none_failed
      all_done
      (取决于您的要求)

  • 我试图了解气流在哪里为所有dag下游任务设置“跳过”状态。我在skipmixin.py中看到了代码,看起来它正在为直接下游任务设置“跳过”状态。我是否可以创建一个自定义ShortCircuit运算符,该运算符不会根据任务id模式或运算符类型将“跳过”状态传播/标记到一组任务中?我试图了解气流在哪里为所有dag下游任务设置“跳过”状态。我在skipmixin.py中看到了代码,看起来它正在为直接下游任务设置“跳过”状态。我是否可以创建一个自定义ShortCircuitOperator,它不会根据任务id模式或运算符类型将“跳过”状态传播/标记到一组任务中?