我有几个时间间隔很慢的时间表。我的配置看起来像
args = {
'owner' : 'test',
'start_date' : datetime.now(),
'email' : ['a@b.com'],
'email_on_failure': True,
'email_on_retry' : True,
'retries' : 3,
'retry_delay' : timedelta(seconds=30)
}
dag = DAG(
dag_id='feed_response', default_args=args,
concurrency=4,
schedule_interval='0 2 * * 6',
dagrun_timeout=timedelta(minutes=20)
)
此计划应该运行上周六的实例。它跑到了上周六。我在一些工作中注意到了这种行为。有没有理由为什么调度程序似乎落后一个时间间隔?
答案 0 :(得分:2)
在“常见陷阱”部分(https://cwiki.apache.org/confluence/display/AIRFLOW/Common+Pitfalls)中的气流维基上描述了此行为:
了解执行日期:Airflow是作为ETL需求的解决方案而开发的。在ETL世界中,您通常会汇总数据。所以,如果我想总结2016-02-19的数据,我会在格林威治标准时间2016-02-20午夜进行,这将在2016-02-19的所有数据可用后立即生效。
答案 1 :(得分:0)
Airflow文档建议不要特别使用start_date
datetime.now()
的动态值
https://airflow.incubator.apache.org/faq.html#what-s-the-deal-with-start-date