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出现异常时,第二个还能继续运行。