如何配置Autosys作业使其在指定作业运行后触发且不提前执行
Autosys作业依赖配置方案
问题根因
你之前使用的s(首个作业名称)依赖条件默认匹配最近的成功作业实例,若前一天的首个作业已运行成功,当日调度时间到达时,依赖条件会直接命中,导致第二个作业无需等待当日首个作业运行就提前启动。
适配需求的配置步骤
你的需求为第二个作业无需等待首个作业完全执行结束、也不会被跳过,仅需在首个作业之后运行,可按以下方案调整:
- 替换依赖条件:将原有
s(首个作业名称)触发条件修改为r(首个作业名称,0),其中r代表匹配作业的RUNNING状态,参数0限定仅匹配当日调度的首个作业实例,避免匹配历史实例导致条件提前触发。 - 保留调度配置:两个作业的
start_times参数维持原同一时间配置即可,Autosys调度时会优先启动无依赖的首个作业,待首个作业进入RUNNING状态后,第二个作业的依赖条件将自动满足并立刻启动,无需等待首个作业执行完成。 - 新增防漏跑配置:在第二个作业的属性中添加
n_retrys: 3(可按需调整重试次数),同时配置term_run_time: 1440(单位为分钟,可根据作业运行周期调整),避免因当日首个作业启动延迟,导致第二个作业被标记为错过执行而跳过。
扩展场景(首个作业运行到指定阶段触发第二个作业)
如果你需要首个作业执行到特定节点后再启动第二个作业,可补充以下配置:
- 创建一个dummy类型的虚拟作业,命名为
首个作业名称.阶段标记 - 在首个作业的业务脚本对应节点位置添加事件推送命令:
sendevent -E CHANGE_STATUS -s SUCCESS -J 首个作业名称.阶段标记 - 将第二个作业的依赖条件修改为
s(首个作业名称.阶段标记,0)
调整后首个作业运行到指定节点时会自动将虚拟作业标记为成功,随即触发第二个作业启动,无需等待首个作业全量执行完成。
内容的提问来源于stack exchange,提问作者Mouni
相关产品推荐
相关产品推荐

