![](/img/trans.png)
[英]Is it possible to update/overwrite the Airflow [‘dag_run’].conf?
[英]Airflow scheduled dag_run time changes if DAG is run manuallly
我正在使用 Airflow 2.2.5 构建自官方 docker 图像和 Postgres 数据库。 假设我有一个 DAG 设置为每天凌晨 2 点运行。 只要我只打开它让它运行,该过程就可以正常运行,并且 DAG 每天凌晨 2 点按预期运行,但如果由于某种原因我需要手动运行,比如上午 11 点,现在在第二天(以及以下所有)DAG 将在上午 11 点自动运行,而不是编程的凌晨 2 点。
我尝试使用 cron 表达式而不是schedule_interval
的datetime.timedelta
并且即使在 UI 中看起来 DAG 将在凌晨 2 点运行(尽管手动运行了上午 11 点),但 DAG 实际上只在上午 11 点运行,这与 UI 指示相反.
正如其他人注意到这种行为? 我能做些什么来防止手动运行干扰预定的运行吗?
谢谢
Airflow 是一个数据流工具,每次运行都会给你一些上下文变量,以便在你的处理中使用它们:
data_interval_start
:这是您将处理的数据中的第一个日期,它等于上一个运行结束日期data_interval_end
:这是您将处理的数据中的最后一个日期因此,如果您使用这些变量来过滤您要处理的数据,您不能仅仅为了运行手动运行而更改schedule_interval
,因为如果您使用0 11,12 * * *
例如,您将每天运行两次:
data_interval_start=12h00 of the previous day
和data_interval_end=11h00 of the current day
(23 小时)data_interval_start=11h00 of the current day
data_interval_end=12h00 of the current day
(1 小时)但是如果你有一个在每次运行时使用完整数据的 dag,或者一个在不使用任何数据的情况下执行某些任务的 dag,你可以通过不同的方式手动触发它:
Trigger DAG
airflow dags trigger <dag_id>
( doc )POST api/v1/dags/{dag_id}/dagRuns
( 文档)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.