Airflow 居然趁服务器不注意卡在 running 状态不执行

就像这样,这小子坏得很。

1541489895790

初现端倪

好在 Task Instance Details 中可以看到这小子心里都在想些啥,这是十分关键的,以及具有重大突破性的调查入口!

1
depends_on_past is true for this task's DAG, but the previous task instance has not run yet.

做为一个新来的 dag,旗下每一个格子都是小白块,怎么可能会有前置依赖没执行?十分任性!

顺藤摸瓜

找到问题所在就好办了

前往代码中查看,我确实将 depends_on_past 置为 True` 了,但是每个 task 之间的依赖更是没有问题。

1
2
3
4
5
6
default_args = {
'owner': 'amos',
'depends_on_past': True,
# 'start_date': airflow.utils.dates.days_ago(1),
'start_date': datetime.now(),
}

尝试着将 depends_on_past 置为 False ,Airflow 立马开始了属于他自己的奔跑(按照依赖关系奔跑)!

别出纰漏

顺便一提,还有一种可能会导致这种情况的发生

那就是没有开启这个 dag,也就是 trigger 的状态为 off,这样会把任务挂起,直至开启 dag 才会执行。


了解更多

AirFlow DAG Get stuck in running state