【发布时间】:2019-05-09 20:44:44
【问题描述】:
我正在运行 Apache Airflow 1.10.0,我想利用新的时区感知 Dag 功能。我必须承认,气流调度程序有点混乱,我不太确定如何完成我想做的事情。我正在尝试定义一个每天午夜 5 点(东部时间)运行的 Dag。
到目前为止,我已经尝试使用 Pendulum 定义具有时区感知 start_date 的 Dag。我的计划间隔是timedelta(days=1)。出于某种原因,这导致在 12:00 等看似奇怪的时间运行。
我当前的 Dag 定义:
...
dag_tz = pendulum.timezone('US/Eastern')
default_args = {
'owner': 'airflow',
'email': '<email_address>',
'email_on_failure': True,
'email_on_retry': True,
'retries': 3,
'depends_on_past': False,
'retry_delay': timedelta(minutes=5),
'provide_context': True,
'start_date': datetime(2019, 5, 1, tzinfo=dag_tz)
}
dag = DAG('my_dag_id', default_args=default_args,
catchup=False, schedule_interval=timedelta(days=1))
...
我希望 Dag 每天在同一时间运行。我已经看到我可以对schedule_interval 使用 cron 表达式,但这也令人困惑,因为我不确定是否需要在 cron 表达式中包含我的 UTC 偏移量,或者 Dag 是否可以识别 timzeone 的事实将需要照顾这个。
例如,我的 schedule_interval 应该是 05 04 * * * 或 05 00 * * * 还是完全其他的?
【问题讨论】:
标签: python-3.x airflow directed-acyclic-graphs