Ветви, созданные с помощью BranchPythonOperator, не объединяются? - PullRequest
0 голосов
/ 24 ноября 2018

Я использую BranchPythonOperator для создания веток в потоке воздуха.Мой пример использования - мне нужно сделать две ветки от мейнстрима.Ветвь A (у которой мало задач) будет следовать, когда присутствует somefile.csv, в противном случае ветвь B (у которой нет задачи) будет следовать.Наконец, обе ветви должны быть объединены, чтобы снова стать мейнстримом.Теперь я могу следовать за веткой A или за веткой B, но проблема в том, следую ли я за выполнением конечных основных задач ветки B и если я следую за веткой A, пропускаются последние основные задачи.

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

Я установилПравило триггера "all_done" в MainstreamTaskB и MainstreamTaskC.

Может ли кто-нибудь помочь мне в этом?

1 Ответ

0 голосов
/ 26 ноября 2018

Я не вижу другую ветку в ваших зависимостях.Единственная ветка - BranchATaskA.Но в зависимости от того, что вы упомянули, у вас должны быть следующие зависимости задач и две задачи ветвления BranchATaskA и BranchATaskB.

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

. Вы должны иметь правило триггера как all_done на MainstreamTaskC.

...