从气流文档中:
SubDAGs must have a schedule and be enabled. If the SubDAG’s schedule is set to None or @once, the SubDAG will succeed without having done anything
我了解 subdagooperator 实际上是作为 BackfillJob 实现的,因此我们必须向schedule_interval
操作员提供一个。但是,有没有办法获得schedule_interval="@once"
subdag 的语义等价物?我担心如果我对 subdag 使用 set ,如果schedule_interval="@daily"
subdag 的运行时间超过一天,那么 subdag 可能会运行不止一次。
def subdag_factory(parent_dag_name, child_dag_name, args):
subdag = DAG(
dag_id="{parent_dag_name}.{child_dag_name}".format(
parent_dag_name=parent_dag_name, child_dag_name=child_dag_name
),
schedule_interval="@daily", # <--- this bit here
default_args=args
)
... do more stuff to the subdag here
return subdag
TLDR:如何伪造“每次触发父 dag 时只运行一次这个 subdag”