我在autosys中有2个作业:作业1和作业2.仅当Job1成功时,Job2才会运行。
现在,在正常情况下,Job1和Job2将作为每日批次的一部分连续运行。
但是,有时候,我需要在不开始Job2的情况下重新运行Job1。但如果我重新运行Job1,它的成功将自动启动Job 2。 所以,我把Job2'暂停'并运行Job1。到目前为止一切都很好。
现在,根据我的经验,当我将Job 2' Off Hold'时,它会立即开始运行。我不想要那个。 http://autosys-tutorials.blogspot.ca/2011/04/autosys-quick-reference.html
我想要的是让Job2进入Runnable状态,以便在下一批次运行时获取它。 我应该将Job2设置为什么状态?
答案 0 :(得分:2)
在这种情况下,您应该在重新运行Job1之前将Job2'On Ice'放置,而不是将其置于“暂停”状态。来自您发布的link:
“暂停”和“冰上”之间的区别在于“开启时” 保持“如果工作已经开始,工作将被取消 满意,它将被安排运行,它将运行。在另一 如果一个“冰上”工作被“脱冰”,它就不会开始了 如果它的起始条件已经满足。这项工作不会 直到它的起始条件再次发生。
答案 1 :(得分:1)
我不确定你是否得到了怀疑的答案,还有一个选项是当off_hold它时不要让ON_HOLD作业立即运行。
将作业2状态从ON_HOLD更改为INACTIVE,因此当作业处于INACTIVE状态时,作业2将不会立即启动,同时作业2将开始运行一旦条件(作业1进入成功状态)。< / p>
如果您将作业2标记为ONICE,它将允许相关作业启动(如果有)。
此致 Kaliraja(HP Autosys团队)
答案 2 :(得分:1)
您可以暂停job2并运行job1。完成JOb1后,将Job2的状态更改为成功,以便可以按照计划并根据其条件下次启动。
答案 3 :(得分:0)
在开始Job_1之前将Job_2设为'On_Ice'
答案 4 :(得分:0)
您可以将作业2置于HOLD状态,但将作业标记为成功/失败(确保Job2对此状态没有其他依赖性)
答案 5 :(得分:0)
您可以暂停job2并运行job1。完成JOb1后,将Job2的状态更改为INACTIVE,以便下次按计划启动。
答案 6 :(得分:0)
您可以使用override_job子命令绕过执行一次。下一个计划将自动选择要运行的作业。
此示例显示如何定义一次性作业覆盖。以下脚本在没有条件的情况下运行作业RunData(其中一些先前已指定)并将结果输出到不同的输出文件: UNIX: override_job:RunData 条件:NULL std_out_file:“tmp \ SpecialRun.out”
如果要取消定义的覆盖作业,请使用以下 -
override_job:RunData delete
答案 7 :(得分:0)
场景的选项:
s(job1,0)
的成功条件放在job2上,以便永久修复以满足您的临时请求&amp;永久预定的运行如果您将其置于保持状态&amp;后来删除它。答案 8 :(得分:0)
关于您不想放置Job2&#39; ON_ICE&#39;因为这将运行剩余的作业(job3 - job10),我认为除非主盒运行,否则不会发生这种情况。由于您已经提到要将job1作为独立运行,因此主框不应该运行,因为如果是这样,job1将自动触发。说完这些之后,当你想单独运行job1时,确保主框没有运行。否则,你所说的将会发生。
答案 9 :(得分:-1)
将这些作业放在同一个框中,将作业2 ON_HOLD,FORCESTART框,等待作业1完成SUCCESS,KILLJOB框,将作业2 OFF_HOLD,将框中所有作业的状态更改为SUCCESS。