2017-09-25 32 views
0

我在Airflow中有任務A→B→C,當我運行DAG並完成所有成功時,我希望能夠單獨清除B(同時將C標記爲成功)。 B清除並進入'no_status'狀態,但是當我嘗試重新運行B時,沒有任何反應。我試過--ignore_dependencies,--ignore_depends_on_past和--force,但無濟於事。如果C也被清除,那麼B似乎只能重新運行,然後所有事情按照預期重新運行。如果標記成功,即使下游清除了上游任務,氣流強制重新運行

我希望能夠在不更改管道的情況下專門重新運行B的原因是B的一些外部輸入可能會稍微改變(文件更改或調整),我想運行它並評估它在重新啓動下游任務之前輸出(以緩解任何潛在的中斷)。

回答

0

如果通過命令行清除,則可以指定要清除哪些任務。

airflow clear your_dag_id --task_regex B --start_date 2017-09-25T17:00:00 --end_date 2017-09-25T17:00:00 

如果你想通過UI要做到這一點,你可以去Browse -> Task Instances找到你想要清除任務實例。從那裏刪除應該只清除您選擇的任務。您還需要轉到Browse -> DAG Run並將相關的DAG運行設置爲正在運行的狀態,以便清除已清除的任務。

+0

按照你的建議,它似乎自動清除有C和重新跑了B,則C.我只是喜歡運行B單獨無需重新運行C. – bodihex

0

在UI中,當您清除實例任務時,默認情況下會檢查下游情況。

如果取消選中它,它會清除僅此一家,而不是重新運行的任務下游

+0

我試過了,但如果C仍被標記爲完成,它將不會重新運行B. – bodihex

相關問題