我们有一个 Autosys 作业(我们称之为 job_a),它具有凌晨 3 点的时间依赖性,并且还应该等待大型机作业(job_m,在我们的例子中总是成功)的成功完成。Job_m 通过大型机上的 OPC 调度程序运行,它将作业完成传达给 Autosys。它可以在凌晨 2 点到 6 点之间的任何时间运行。
我对 Autosys 工作原理的理解是,当 job_m 完成时,它会在其数据库中的表中写入一个条目,并且当 job_a 检查其依赖关系时,它会查看此表以查看 job_m 的状态。此状态不会自动清除。因此,在第一次成功运行 job_m 后,将始终满足作业依赖性,即使我们只对同一天的 job_m 运行感兴趣。
Day 1 4am: job_m completes Day 1 4:01am: job_a runs, since Day 1 4am run of job_m was successful Day 2 3am: job_a runs, since Day 1 4am run of job_m was successful Day 2 5am: job_m completes
我们目前建议的解决方法是有一个作业 (job_c) 定期检查表,并且仅当 job_m 的状态在过去 6 小时内发生更改时才完成。
Day 1 3am: job_c starts, sees no status change for job_m within the last 6 hours Day 1 4am: job_m completes Day 1 4:01am: job_c completes Day 1 4:02am: job_a runs following completion of job_c Day 2 3am: job_c starts, sees no status change for job_m within the last 6 hours Day 2 5am: job_m completes Day 2 5:01am: job_c completes Day 2 5:02am: job_a runs following completion of job_c
有没有Autosys命令可以用来重置表中job_m的状态?如果没有,是否有比上面概述的更好的方法来执行这种依赖关系?