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出現異常時,第二個還能繼續執行。