我有 3 个作业的 Ctrl-M 工作流程,应该每 15 分钟运行一次,如下所示:
工作1-->工作2-->工作3。
时间表是从上午 9 点到上午 11 点,每 15 分钟循环一次。
Control-M 版本 V9。
业务规则:Job1 启动。一旦 Job1 成功完成,Job2 就必须启动。一旦 Job2 成功完成,Job3 就必须启动。
因此,我所做的是定义 Job1 每 15 分钟循环一次,并创建一个输出条件“job1-OK”,这是 Job2 的先决条件,从 Job2 到 Job3 也是如此。
我发现如果你不将 Job2 和 Job3 也定义为循环的,那么它们在第一次执行后就永远不会再次被踢出。你们知道为什么吗?我为解决这个问题所做的就是将 Job2 和 Job3 也设置为每 15 分钟循环一次,但这会使我的“工作流程”< Job1-->Job2-->Job3 > 变得混乱,因为评估了 Job2 的 15 分钟条件在我的父 Job1 完成之前,因此如果 Job1“周期”与 Job2 周期不同步,则 Job2 永远不会运行。你懂我的意思吗?
示例:Job1 运行 1 分钟,Job1-OK 退出条件被释放,Job2 被启动,从 Job2 到 Job3 也是如此。Job1 现在正在等待下一个 15 分钟循环,循环命中,它运行并需要 20 分钟运行:并行,Job2 正在等待 15 分钟循环 + Job1 的输出条件:只要 15 分钟循环Job2 被命中,Job1 的前置条件被评估,返回 false(因为 Job1 仍在运行)并且 Job2 进入等待条件,等待下一个 15 分钟周期 + Job1-运行 Job2 所需的 OK 条件。Job1 在 18 分钟内完成并释放“Job1-OK”条件但 Job2 没有启动,因为下一个周期将在接下来的 12 分钟内发生,因为 Job1 需要 18 分钟才能运行。因此,Job2 执行在此循环中丢失。
我基本上希望 Job2 在 Job1 完成后立即运行,无论时间表、时间、周期或其他什么。有可能完成这样的任务吗?否则,我怎样才能在循环和前置条件检查之间不重叠的情况下满足这样的要求?
非常感谢,我希望我能正确解释自己!