能否在Airflow的单个DAG内设置schedule_after_task_execution=False?
解决单个DAG的mini scheduler问题:单独设置schedule_after_task_execution=False
你把schedule_after_task_execution=False放到default_dag_args里是无效的,因为这个参数是DAG实例专属属性,不属于任务级别的默认参数范畴。
正确的做法是将该参数直接传递给DAG的初始化参数中,而非default_args字典。示例代码如下:
from airflow import DAG from airflow.operators.dummy import DummyOperator import datetime from datetime import timedelta from airflow.models import Variable default_dag_args = { 'start_date': datetime.datetime(2024,6,6), 'email_on_failure': True, 'email_on_retry': False, 'retries': 1, 'retry_delay': timedelta(minutes=1), 'project_id': Variable.get('gcp_project'), } with DAG( dag_id='your_target_dag_id', default_args=default_dag_args, schedule_interval='@daily', schedule_after_task_execution=False # 此处才是该参数的正确位置 ) as dag: sample_task = DummyOperator(task_id='sample_task')
这样设置后,该参数只会作用于当前定义的DAG,关闭其mini scheduler行为,不会影响其他DAG的运行逻辑。
内容的提问来源于stack exchange,提问作者Aleksander Lipka
相关产品推荐
相关产品推荐

