0

我正在使用 control-M 来安排一些作业,以下是我面临的场景:

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

Job-2 - 在每个月的 1 号订购,但在 10 号左右运行(不固定)

现在,我要求 Job-2 依赖于 Job-1 的执行。假设如果 job-2 在 12 日变得“有资格”执行,那么它应该只在以下情况下执行:-

  1. 12 日的 Job-1 已成功执行
  2. 如果作业 1 的执行未安排在 12 日,则作业 2 应检查最后一次成功执行(即可能是 11 日)

如果最后一次执行 Job-1 失败,则不应执行 Job-2

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

4

2 回答 2

1

-->对于job-1,使用带有“Nodate”的out-condition -->对于job-2,使用job-1 Nodate outcondition 作为in-condition。一旦这个 job-2 结束-ok 删除 job-1 条件。随之而来的是与 odate 相匹配的 job-2 outcondition。--> 在 job-1 前置条件中,检查(job-1 out-condition with no-date OR job-2 out-condition with prev-date)并在仅在先决条件中使用后删除条件。

执行流程。因此,job-1 将每天运行并将带有节点的 outcondition 抛出到数据库中。第二天,当它运行时,它会检查(job-1 的节点条件或 job-2 的 prev-date out 条件)是否有任何一个可用,然后它接受该条件并从数据库和触发器中删除相同的条件工作-1。

每当您的作业 2 将要运行时,它都会在那天检查作业 1 的节点条件。如果job-1成功,那么它的节点outcondition就可以使用并且可以用来触发job-2。一旦 job-2 完成,job-1 的节点条件将被删除。并且作业 2 的当前日期超出条件将在第二天作业 1 执行中使用,因为作业 1 的节点条件将不可用。

谢谢。

于 2018-03-28T19:48:48.603 回答
0

有几种方法可以解决这个问题:

第一个是有两个版本的工作 1。工作之间的区别在于日历。除了日常工作 2 之外,一整天都在运行。第二个仅在第 2 天运行,并且该作业创建了作业 2 用作输入条件的输出条件。

另一种选择是创建一个输出条件作为作业 1 的后处理,然后作业 2 将此条件用作输入条件,其中* * 作为日期 - 请记住在作业 2 完成时删除此条件(这始终是一个好习惯) .

语法在 status = *(或 sysout 中的某个字符串)上,compstat = OK,添加条件。

您也可以将作业 2 强制作为后期处理,添加到 on 语句 do force job。

于 2014-01-27T00:53:17.430 回答