Airflow
documentation明确指出
SubDAG必须具有时间表并已启用。如果SubDAG的时间表 设置为None或@ once,SubDAG将成功执行而无需完成 任何东西
尽管我们必须遵守文档,但我发现即使schedule_interval
设置为None
或@once
,它们也不会打h。 Here's我的工作示例。
我目前对Airflow
s(或SubDagOperator
s)的了解(仅两周前听说subdag
)
Airflow
将subdag
视为另一个task
我的问题是
SubDagOperator
与其他operator
的行为之间有细微的差别吗?SubDagOperator
s这么多?Airflow 1.9.0-4
Python 3.6-slim
CeleryExecutor
与redis:3.2.7
答案 0 :(得分:1)
如果您只运行一次DAG,那么SubDags可能不会有任何问题(如您的示例所示)-尤其是当您有大量可用的工作槽时。尝试让示例中的一些DagRun累积起来,如果尝试删除并重新运行某些示例,则看一切运行是否顺利。
社区建议不要使用SubDags,因为当您需要重新运行旧的DagRun或运行较大的回填时,会发生意外行为。
并不是说DAG不能正常工作,而是更多可能发生的意外事件可能会影响您的工作流程,而当您获得回报时,看起来更好的DAG则不值得冒险。
即使存在已知的解决方案,实现它们也可能不值得。