Control-M在每月和每日工作之间添加条件

时间:2013-08-20 06:35:37

标签: scheduling control-m

我正在使用control-M来安排一些工作,以下是我面临的情况:

  

Job-1 - 每天运行(不是在特定时间)

     

Job-2 - 在每个月的1号订购但是在10号左右运行(未修复)

现在,我要求Job-2依赖于Job-1的执行。假设作业2在12日变得“符合条件”执行,那么它应该只在以下场景中执行: -

  
      
  1. 12日的Job-1已成功执行
  2.   
  3. 如果作业1的执行没有安排在12日,那么Job-2应检查上次成功执行(即可能是11日)
  4.   

如果上次执行Job-1失败,则不应执行Job-2

我试过的是,在Job-2上指定IN条件,日期为PREV,但似乎没有检查当前日期的作业1执行。

2 个答案:

答案 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语句中强制作业。