如何设置每月2日至8日每4小时运行一次的Autosys调度任务
这个需求完全可以通过Autosys原生调度规则实现,无需额外开发辅助脚本。
实现思路
Autosys支持通过日期、时间字段组合配置复杂调度规则,不需要单独创建自定义日历就能满足该需求,核心逻辑为:
- 限定作业仅在每月2日到8日触发
- 配置触发时间为每间隔4小时的整点,覆盖全天所有4小时间隔的时间点
具体操作方法
1. 编写JIL作业定义脚本
JIL是Autosys的作业配置标准语言,你可以直接参考如下模板修改:
/* 作业基础属性配置 */ insert_job: MONTHLY_4H_TASK job_type: CMD command: /path/to/your/business_script.sh # 替换为实际要执行的命令/脚本路径 machine: YOUR_AGENT_HOSTNAME # 替换为作业运行的Autosys代理节点名称 owner: autosys_user@your_domain # 替换为实际的作业所有者账号 permission: gx,wx /* 调度规则核心配置 */ days_of_month: 2,3,4,5,6,7,8 # 限定每月2-8日运行 start_mins: 00 # 固定在整点0分触发 start_hours: 0,4,8,12,16,20 # 每隔4小时触发一次,覆盖全天6个时间点 run_window: "00:00-23:59" # 运行时间窗口不做额外限制 description: "每月2-8日每4小时运行一次的业务作业" alarm_if_fail: 1
2. 导入配置并验证
- 将上述配置保存为
monthly_4h_job.jil文件 - 执行导入命令生效:
jil < monthly_4h_job.jil - 执行命令检查配置是否正确:
autorep -j MONTHLY_4H_TASK -q,核对返回的调度规则字段是否和配置一致 - 执行
forecast -j MONTHLY_4H_TASK -n 20可以查看接下来20次的运行时间点,确认调度规则符合预期
可选优化方案
如果你的场景需要排除节假日,或者后续要调整运行日期更方便,可以提前创建自定义运行日历:
- 创建包含每月2-8日的自定义日历,命名为
MONTHLY_2TO8_CAL - 在JIL配置中删除
days_of_month字段,新增run_calendar: MONTHLY_2TO8_CAL即可 - 若要避免作业运行重叠,可新增配置
condition: success(MONTHLY_4H_TASK, 4.0),要求上一次运行成功后才会触发下一次调度
内容的提问来源于stack exchange,提问作者ram
相关产品推荐
相关产品推荐

