使用BranchPythonOperator创建的分支不会合并?

时间:2018-11-24 11:49:40

标签: airflow airflow-scheduler apache-airflow-xcom

我正在使用BranchPythonOperator在气流中进行分支。我的用例是我需要从主流中划分出两个分支。当存在somefile.csv时,将遵循分支A(任务很少),否则将遵循分支B(无任务)。最后,两个分支机构应合并以再次成为主流。 现在,我可以跟随分支A或分支B,但是问题是我是否遵循分支B执行的最终主流任务,以及是否遵循分支A的最终主流任务。

MainstreamTaskA.setDownStream(MainstreamTaskB)
MainstreamTaskB.setDownStream(BranchATaskA)
BranchATaskA.setDownStream(MainstreamTaskC)
MainstreamTaskB.setDownStream(MainstreamTaskC)

我在MainstreamTaskB和MainstreamTaskC中将触发规则设置为“ all_done”。

有人可以引导我做这个吗?

1 个答案:

答案 0 :(得分:0)

我在您的依赖项中看不到另一个分支。唯一的分支是BranchATaskA。 但是根据您提到的内容,您应该具有以下任务依赖性,并具有两个分支任务BranchATaskABranchATaskB

MainstreamTaskA >> MainstreamTaskB
MainstreamTaskB >> BranchATaskA >> MainstreamTaskC
MainstreamTaskB >> BranchATaskB >> MainstreamTaskC

您应该在all_done上将触发规则设为MainstreamTaskC