我正在使用control-M来安排一些工作,以下是我面临的情况:
Job-1 - 每天运行(不是在特定时间)
Job-2 - 在每个月的1号订购但是在10号左右运行(未修复)
现在,我要求Job-2依赖于Job-1的执行。假设作业2在12日变得“符合条件”执行,那么它应该只在以下场景中执行: -
- 12日的Job-1已成功执行
- 如果作业1的执行没有安排在12日,那么Job-2应检查上次成功执行(即可能是11日)
醇>
如果上次执行Job-1失败,则不应执行Job-2
我试过的是,在Job-2上指定IN条件,日期为PREV,但似乎没有检查当前日期的作业1执行。
答案 0 :(得分:1)
- > for job-1使用out-condition with" Nodate" - > for job-2使用job-1 Nodate outcondition作为条件。一旦这个工作-2结束 - 确定删除工作1条件。 随之而来的是与odate一起提出的工作条件。 - >在作业1前提条件下,检查(作业1出局条件,无日期或作业2出局条件与上限日期),并仅在先决条件中删除使用后的条件。
执行流程。 因此,job-1将每天运行并将nodate抛出数据库。第二天,当它运行时,它会检查(作业-2的作用状态或作业-2的上限状态),如果其中任何一个可用,则它接受该条件并从数据库中删除相同的条件并触发工作-1。
每当你的工作2要运行时,那天它将检查工作-1的状态。如果job-1成功,那么它的nodate outcondition将可以使用,并可用于触发job-2。一旦job-2完成,job-1的nodate条件将被删除。 job-2的当前odate outcondition将在第二天的job-1执行中使用,因为job-1 nodate condition将无法使用。
感谢。
答案 1 :(得分:0)
有几种方法可以解决这个问题:
第一个是工作的两个版本1.工作之间的区别在于calandar。除了白天工作2运行之外,其中一天运行。第二个仅在第2天运行,此作业创建作业2用作条件的输出条件。
另一种选择是在作业1上创建一个out条件作为后期处理,然后作业2将此条件用作 * *作为odate的条件 - 记得在作业时删除此条件2完成(这总是一个好习惯)。
语法在status = *(或sysout中的某个字符串)上,compstat = OK,添加条件。
您还可以强制将作业2作为后期处理,添加到on语句中强制作业。