Autosys作业每日仅运行一次,前驱多次成功不触发重跑问题咨询
Autosys多触发作业配置解决方案
问题根因
当前配置的核心限制是Autosys默认对开启日期条件的作业执行每日单次运行规则,作业首次触发成功后,当日状态会标记为已完成,不再响应后续的前驱成功事件,该逻辑与是否设置start_times参数无关。
适配方案
方案1(Autosys 11.0及以上版本适用)
直接调整作业配置即可实现需求,参考配置如下:
Job A date_conditions: 1 run_calendar: D1_D5 run_window: "00:00-23:59" multiple_runs: 1 max_runs: 10 condition: s(Job B)
新增参数说明:
multiple_runs: 1:开启当日多次运行模式,作业首次运行后不会直接被排期到次日,只要满足触发条件可在当天重复运行run_window: "00:00-23:59":限定作业的可触发时间区间为全天,避免跨天异常触发max_runs: 10:设置单日最大运行次数,可根据Job B每日的实际最大运行次数调整为更大数值,防止异常无限触发
方案2(低版本Autosys兼容方案)
如果你的Autosys版本不支持multiple_runs参数,可通过盒作业(Box Job)嵌套的方式实现:
- 先创建父Box作业,配置日期规则:
Box_Job_A date_conditions: 1 run_calendar: D1_D5 start_times: "00:00"
- 将原Job A设置为该Box的子作业,配置如下:
Job A box_name: Box_Job_A condition: s(Job B) n_retrys: 10
该方案下父Box每天仅启动一次,子作业在Box的运行周期内可响应前驱的多次成功事件重复运行,n_retrys参数可根据单日所需的最大运行次数调整。
内容的提问来源于stack exchange,提问作者Prabhaker Nigam
相关产品推荐
相关产品推荐

