Из документации по воздушному потоку:
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
Я понимаю, что субдагоператор фактически реализован как BackfillJob, и поэтому мы должны предоставить оператору schedule_interval
. Однако существует ли способ получить семантический эквивалент schedule_interval="@once"
для поддиапазона? Я волнуюсь, что если я использую set schedule_interval="@daily"
для поддиапазона, что поддиаг может запускаться более одного раза, если поддак занимает больше времени, чем один день для запуска.
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
TL;DR: как подделать "только запустите этот поддак один раз за триггер родительского дага"