job_chain

时间:2022-08-08 09:15:55

JOB链:JOB之间的相互触发操作。

实验意图:有些JOB具有先后调用次序,比如先做一件事情,这件事情做完才能继续下一件事情,而第一个JOB如果自己挂掉的话,第二个JOB需要正常运行(默认是终止),这时就需要配置JOB链,在错误的情况下不终止。

实验步骤:创建2个JOB,test1和test2,第一个需要出异常,第二个正常。

第一个JOB(test1.job.xml)配置如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<job stop_on_error="no" title="Test1." order="yes">
<script language="shell"><![CDATA[
Call D:\Application\EnterpriseShare.Core\ETL\Runtime\bin\Test1_run.bat
]]></script>
</job>

第一个JOB(test2.job.xml)配置如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<job stop_on_error="no" title="Test2" order="yes">
<script language="shell"><![CDATA[
Call D:\Application\EnterpriseShare.Core\ETL\Runtime\bin\Test2_run.bat
]]></script>
</job>

JOB链配置(Test.job_chain.xml)如下:

<?xml version="1.0" encoding="ISO-8859-1"?>

<job_chain  orders_recoverable="yes" visible="yes" title="ESD_Cost_Schedule">
<job_chain_node state="1" job="/test/test1" next_state="2" error_state="2"/> <job_chain_node state="2" job="/test/test2" next_state="end"/> <job_chain_node state="end"/>
</job_chain>

JOB Order配置(Test,Test.order.xml)如下:

<?xml version="1.0" encoding="ISO-8859-1"?>

<order >
<params /> <run_time let_run="yes" once="yes">
<period let_run="yes" repeat="00:03" begin="00:00" end="24:00" when_holiday="ignore_holiday"/> <holidays />
</run_time>
</order>

三分钟跑一次。

结果:

当第一个job出现异常时,第二个还能继续运行。

相关文章