如何在Azure Databricks中配置每隔一天运行的定时作业
Databricks 间隔1天运行作业的实现方案
针对Databricks原生调度不支持直接设置「隔天运行」周期的问题,有两种成熟实现方案:
方案1:每日调度 + 运行前置判断(通用推荐)
该方案不依赖固定周几的规律,适配任意首次启动日期的隔天运行需求,稳定性最高:
- 将作业调度规则设置为按天周期,运行时间设置为你需要的固定触发时点
- 在作业对应Notebook的最开头加入如下判断逻辑,仅符合间隔要求时才执行后续业务代码:
from datetime import datetime import pytz # 替换为你设定的首次运行日期,格式为yyyy-mm-dd first_run_date = datetime.strptime("2024-05-20", "%Y-%m-%d").date() # 如需指定时区,替换为你业务对应的时区,例如Asia/Shanghai current_run_date = datetime.now(pytz.timezone("UTC")).date() delta_days = (current_run_date - first_run_date).days # 间隔天数为偶数时才继续执行,奇数直接退出作业 if delta_days % 2 != 0: dbutils.notebook.exit("非预设运行周期,本次执行自动退出")
方案2:周调度 + 多星期勾选(适配固定周几触发场景)
如果你的需求固定为周一、周三、周五、周日触发,不需要适配任意起始日期,可直接用周调度实现:
- 将作业调度规则设置为按周周期
- 勾选周一、周三、周五、周日四个触发星期,设置统一的运行时点即可
提示:如果作业需要支持失败重跑,建议优先选方案1,重跑时会自动校验日期是否符合要求,避免误跑。
内容的提问来源于stack exchange,提问作者Saswat Ray
相关产品推荐
相关产品推荐

