我想创建一个仅在外部触发器上运行的DAG(即使用'airflow trigger_dag'命令)。但是,当我这样做时,除了我想要的'manual_xxx'之外,我还会看到多个'scheduled_xxx'DagRuns。我假设scheduled_xxx DagRuns被创建为回填?
有没有办法只创建'manual_xxx'DagRun而没有'scheduled_xxx'DagRuns?
我尝试了start_date(past,datetime.now()和future的不同值,但结果相同。这是我的玩具DAG ......
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta
default_args = {
'start_date': datetime.now(), (also tried past and future dates)
'schedule_interval': None,
'depends_on_past': False,
}
dag = DAG('my_test_dag', default_args=default_args)
date_task = BashOperator(
task_id='date',
bash_command='date',
dag=dag)
这就是我发出trigger_dag命令的方式......
airflow trigger_dag my_test_dag
答案 0 :(得分:0)
“schedule_interval”似乎不是任务级别参数。如果我将它移动到DAG对象,那么我得到预期的结果。也就是说,当我向DAG构造函数添加'schedule_interval'参数时,我只获得手动触发的DagRun。
default_args = {
'start_date': datetime.now(), (also tried past and future dates)
'depends_on_past': False,
}
dag = DAG('my_test_dag', default_args=default_args, **schedule_interval=None**)
这导致只为每个外部/手动触发器(trigger_dag)创建一个DagRun。