Autosys - 如何从 Box 作业中重新启动作业
Autosys - How to restart job from the middle of Box job
像这样的 Main Box 作业中有 5 个作业
MainBox
Job1 -> Job2 -> Job3 -> Job4 -> Job5
job2依赖Job1,Job3依赖Job2,依此类推
依赖是用条件属性实现的。例如,Job2 的条件为:success(Job1).
启动 MainBox 时,作业将按顺序 运行。假设 Job3 失败了。现在,如何从失败的 Job3 重新启动 MainBox 中的作业?
如果我手动强制启动 Job3,那么它 运行s 但依赖的 Job4 在 Job3 成功后不会启动。
实际上在您提到的设置中,如果任何作业失败,如果条件为 "box_terminator: y",Box 将失败并且下游作业将进入非活动状态为工作设置。在这种情况下,您将不得不通过强制启动每个下游来手动完成下游,因为条件将不起作用,因为 Box 本身失败了。
为了实现你需要在工作中做一点调整,"box_terminator: n"。然后在任何作业失败时,Box 将保持 运行ning 状态,下游作业将保持激活状态,等待失败的作业成功。您可以将失败的作业标记为成功以跳过其 运行 或强制开始完成,因为该框仍处于 运行ning 状态,依赖项将适用于其中的每个作业。
但是一定要为 Box 添加 "trem_runtime: value_in_minutes ",这样如果失败的作业无人看管,那么 box 会在一段时间后失败,否则 box 将 运行无限期地。
我觉得应该可以。
我们可以通过以下步骤实现您的要求。这是另一种方法,
第 1 步:放入 ON_HOLD job1 和 job2,它们是 运行 并成功完成。
第二步:如果盒子作业处于运行状态,则终止盒子作业。
第三步:开始装箱工作。
第四步:将job1和job2从ON_HOLD状态标记为success状态。
第 5 步:检查 Box 作业的状态,您可以看到作业序列从 job3.
开始 运行
此致,
卡利拉加
让您能够在不影响成功的情况下重新启动失败的作业 job/s,并使剩余的 ACTIVE/INACTIVE 个作业自动 运行(因为它取决于失败的作业) ,您需要使用 autosys 的 ON_ICE 功能。 ON_ICE 就像一个 SUCCESS 状态。如果您的作业是 ON_ICE,Autosys 会将此读取为 SUCCESS,并且不会再次触发。因此,由于您对 job3 的依赖是 job2 的 SU,一旦您强制启动主 BOX,您的 job3 将自动 运行(考虑到 job1 和 job2 已经在 ON_ICE状态)。以下是您可以执行的步骤:
- 如果你的主机还是RU状态,强制STOP你的主机。
- ON_ICE 你的工作 1 和工作 2。
- 强制启动您的主机。
- 一旦 box 已经强制启动,您的 job3 将自动 运行。
- 一旦您的工作 3 已经转向 SU,您的工作 4 将立即 运行。
- 一旦 job4 已经完成它的 运行,你的主框应该变成 SU,因为你的 job1 和 job2 处于 ON_ICE 状态,而你的 job3 和 job4 处于 SU 状态。
- 您现在可以设置 OFF_ICE 作业 job1 和 job2,以便在主箱的下一个时间表 运行 中,这些作业将被启动。
注意:job1和job2的开始和结束运行不应该改变。您的主框、job3 和 job4 的开始和结束 运行 应该具有更新时间。
像这样的 Main Box 作业中有 5 个作业
MainBox
Job1 -> Job2 -> Job3 -> Job4 -> Job5
job2依赖Job1,Job3依赖Job2,依此类推
依赖是用条件属性实现的。例如,Job2 的条件为:success(Job1).
启动 MainBox 时,作业将按顺序 运行。假设 Job3 失败了。现在,如何从失败的 Job3 重新启动 MainBox 中的作业?
如果我手动强制启动 Job3,那么它 运行s 但依赖的 Job4 在 Job3 成功后不会启动。
实际上在您提到的设置中,如果任何作业失败,如果条件为 "box_terminator: y",Box 将失败并且下游作业将进入非活动状态为工作设置。在这种情况下,您将不得不通过强制启动每个下游来手动完成下游,因为条件将不起作用,因为 Box 本身失败了。
为了实现你需要在工作中做一点调整,"box_terminator: n"。然后在任何作业失败时,Box 将保持 运行ning 状态,下游作业将保持激活状态,等待失败的作业成功。您可以将失败的作业标记为成功以跳过其 运行 或强制开始完成,因为该框仍处于 运行ning 状态,依赖项将适用于其中的每个作业。
但是一定要为 Box 添加 "trem_runtime: value_in_minutes ",这样如果失败的作业无人看管,那么 box 会在一段时间后失败,否则 box 将 运行无限期地。
我觉得应该可以。
我们可以通过以下步骤实现您的要求。这是另一种方法,
第 1 步:放入 ON_HOLD job1 和 job2,它们是 运行 并成功完成。 第二步:如果盒子作业处于运行状态,则终止盒子作业。 第三步:开始装箱工作。 第四步:将job1和job2从ON_HOLD状态标记为success状态。 第 5 步:检查 Box 作业的状态,您可以看到作业序列从 job3.
开始 运行此致, 卡利拉加
让您能够在不影响成功的情况下重新启动失败的作业 job/s,并使剩余的 ACTIVE/INACTIVE 个作业自动 运行(因为它取决于失败的作业) ,您需要使用 autosys 的 ON_ICE 功能。 ON_ICE 就像一个 SUCCESS 状态。如果您的作业是 ON_ICE,Autosys 会将此读取为 SUCCESS,并且不会再次触发。因此,由于您对 job3 的依赖是 job2 的 SU,一旦您强制启动主 BOX,您的 job3 将自动 运行(考虑到 job1 和 job2 已经在 ON_ICE状态)。以下是您可以执行的步骤:
- 如果你的主机还是RU状态,强制STOP你的主机。
- ON_ICE 你的工作 1 和工作 2。
- 强制启动您的主机。
- 一旦 box 已经强制启动,您的 job3 将自动 运行。
- 一旦您的工作 3 已经转向 SU,您的工作 4 将立即 运行。
- 一旦 job4 已经完成它的 运行,你的主框应该变成 SU,因为你的 job1 和 job2 处于 ON_ICE 状态,而你的 job3 和 job4 处于 SU 状态。
- 您现在可以设置 OFF_ICE 作业 job1 和 job2,以便在主箱的下一个时间表 运行 中,这些作业将被启动。
注意:job1和job2的开始和结束运行不应该改变。您的主框、job3 和 job4 的开始和结束 运行 应该具有更新时间。