airflow - 如何配置 Airflow dag start_date 以在 cron 中运行任务
问题描述
我是 Airflow 的新手,我正在尝试了解如何正确使用调度程序。基本上我想以与使用 cron 相同的方式来安排任务。有一个任务需要每 5 分钟运行一次,我希望它在我将 DAG 文件添加到 dags 目录或对 dag 文件进行一些更改之后在下一个 dag 运行甚至 5 分钟时隙开始。
我知道 DAG 在 schedule_interval 结束时运行。如果我添加一个新的 DAG 并使用 start_date=days_ago(0) 那么我将从一天的开始开始获得不必要的运行。在 dag 文件上硬编码一些特定的开始日期也感觉很愚蠢,即 start_date=datetime(2019, 9, 4, 10, 1, 0, 818988)。我的方法是错误的还是需要设置 start_date 的某些特定原因?
解决方案
我想我从官方文档中找到了我自己的问题的答案:https ://airflow.apache.org/scheduler.html#backfill-and-catchup
通过关闭追赶,只为最近的时间间隔创建 DAG 运行。因此,我可以将 start_date 设置为过去的任何内容,并像这样定义 dag:
dag = DAG('good-dag', catchup=False, default_args=default_args, schedule_interval='*/5 * * * *')
推荐阅读
- javascript - 使用可拖动的 jQuery UI 重新计算拖动元素的宽度
- c - 查找 C167 Siemens 的编译器
- matlab - 具有约束的classdef的Matlab构造
- r - 连接到 Azure SQL - 基于令牌
- python - 无法让我的 python 脚本替换 \u 代码
- python - 怎么修?TypeError:“HTTPConnection”对象不可调用
- regex - Groovy:如何检查列表是否包含另一个列表中包含正则表达式格式的项目
- html - 向上滚动时无法让导航栏隐藏内容
- c++ - 调用 void 函数时出错
操作员 - python - 将 HTTP 上传的数据返回到 sanic 服务器