1 回答
TA贡献1921条经验 获得超9个赞
参考官方文档:
调度程序会在开始日期之后的一个 schedule_interval 运行您的作业。
如果您的 start_date 是 2020-01-01 并且 schedule_interval 是@daily,则第一次运行将在 2020-01-02 上创建,即在您的开始日期过后。
为了在每天的特定时间(包括今天)运行 DAG,start_date
需要将时间设置为过去的时间,并且schedule_interval
需要具有所需的时间格式cron
。正确设置昨天的日期时间非常重要,否则触发器将不起作用。
在这种情况下,我们应该将 设置start_date
为上一周的星期二,即:(2020, 8, 4)
。由于每周运行一次,因此从开始日期起应该有 1 周的间隔。
让我们看一下以下示例,它展示了如何在美国东部标准时间周二至周六凌晨 04:00 运行作业:
from datetime import datetime, timedelta
from airflow import models
import pendulum
from airflow.operators import bash_operator
local_tz = pendulum.timezone("America/New_York")
default_dag_args = {
'start_date': datetime(2020, 8, 4, 4, tzinfo=local_tz),
'retries': 0,
}
with models.DAG(
'Test',
default_args=default_dag_args,
schedule_interval='00 04 * * 2-6') as dag:
# DAG code
print_dag_run_conf = bash_operator.BashOperator(
task_id='print_dag_run_conf', bash_command='echo {{ dag_run.id }}')
我建议您查看start_date 文档的处理方式。
添加回答
举报