use*_*688 7 airflow airflow-scheduler
之前好像有过关于这个的讨论。
https://groups.google.com/g/cloud-composer-discuss/c/JGtmAd7xcsM?pli=1
当我部署 dag 在特定时间运行(例如,每天上午 9 点运行一次)时,Airflow 会立即在部署时运行 dag。
dag = DAG(
'My Dag',
default_args=default_args,
schedule_interval='00 09 * * *',
start_date = datetime(2021, 1, 1),
catchup=False # dont run previous and backfill; run only latest
)
Run Code Online (Sandbox Code Playgroud)
这是因为,当 catchup=False 时,调度程序“仅在最新的时间间隔内创建 DAG 运行”,如文档中所示。
https://airflow.apache.org/docs/apache-airflow/stable/dag-run.html
我想要实现的是,我什至不想在最近的时间间隔内启动 DAG 运行。我希望在下次时钟敲响上午 9 点之前什么都不会发生。
Airflow 似乎没有任何原生解决方案来解决这个问题。
人们一直在使用哪些解决方法?也许类似检查当前时间是否接近 next_execution_date 之类的事情?
当您更新日期时,您可以设置start_date为第二天。但是,如果您暂停/取消暂停 dag,它将不起作用。
请注意,建议使用静态值(避免使用datetime.now()或类似的动态值),因此对于每个部署,您需要指定一个新值,例如datetime(2021, 10, 15), datetime(2021, 10, 16), ... 这可能会使部署更加困难。
| 归档时间: |
|
| 查看次数: |
2985 次 |
| 最近记录: |