如何在Azure Batch账户中设置每月第一天执行的作业调度计划?
Azure Batch 每月首日运行作业调度配置方案
Azure Batch原生的定时调度仅支持固定时间间隔的重复周期,不直接支持日历类的「每月第一天」规则,可通过以下两种成熟方案实现需求:
方案1:搭配其他Azure服务触发(无作业逻辑改动)
- 先停用Batch内原有固定间隔的调度规则
- 创建Azure Logic Apps消费级资源,配置触发规则为每月第一天对应时区的指定时间点触发
- 给Logic Apps添加
Azure Batch - Create job动作,绑定Batch账户访问权限、作业池、作业运行参数即可 - 该方案成本极低,消费级Logic Apps每月前1000次执行免费,调度时间精度最高可达1分钟,无需修改现有作业的任何逻辑
方案2:作业内部加日期校验(仅依赖Batch自身实现)
- 将Batch作业的重复间隔设置为
24小时,即每天执行一次 - 在作业的执行脚本最开头加入日期校验逻辑,仅当当前系统日期为当月1日时才运行实际业务代码,非1日则直接退出返回成功状态
- 参考校验代码(Python示例):
from datetime import datetime # 如需指定时区可替换为对应时区的日期判断逻辑 if datetime.now().day != 1: exit(0) # 下方编写实际作业业务逻辑
- 该方案不需要额外引入其他Azure服务,适合不想额外新增资源的场景,仅会每天产生一条空的作业执行记录,不会额外产生多余成本
注意事项
- 配置所有时间规则时注意统一时区,避免UTC和业务所用本地时区的差值导致执行日期偏移
- 若作业单次执行时长超过24小时,需在作业层面增加并发锁逻辑避免重复执行
内容的提问来源于stack exchange,提问作者Frank.H
相关产品推荐
相关产品推荐

