我正在并行运行任务(T1和T2)。如何设置取决于T1和T2成功完成的下游任务T3
[T1,T2].set_downstream(T3)
但是,出现以下错误 AttributeError:'list'对象没有属性'set_downstream'
答案 0 :(得分:0)
您可以采用一些实用的方法来实现任务相关性,Read - Managing Dependencies或仅查看下面的示例。
T1.set_downstream(T3)
T2.set_downstream(T3)
或
T3.set_upstream([T1, T2])
或
[T1, T2] >> T3
答案 1 :(得分:0)
让我们举个例子:它包含3个任务,因此您可以设置 这样的上游-下游依赖性:
[t1,t2] >> t3
t1 = PythonOperator(
task_id='t1',
dag=dag,
python_callable=call_me,
)
t2 = PythonOperator(
task_id='push_by_returning',
dag=dag,
python_callable=call_me_too(),
)
t3 = PythonOperator(
task_id='puller',
dag=dag,
python_callable=status_chcker,
trigger_rule="all_done"
)
[t1, t2] >> t3
trigger_rule =“ all_done”
有多个触发规则,可根据这些规则触发下游作业。
所有成功:(默认)所有父母都成功
所有失败:所有父母均处于失败或上游失败状态
all_done:所有父母都被处决了
one_failed:至少有一个父项发生故障时立即触发 不要等待所有父母做完
one_success:至少有一个父级成功后就触发 不要等待所有父母做完
none_failed:所有父母都没有失败(失败或upstream_failed) 即所有父母都成功或被跳过
none_skipped:没有父母处于跳过状态,即所有父母都处于 处于成功,失败或上游失败状态
虚拟:依赖只是为了显示,可以随意触发