Aus einer Jobkette mehrere weitere Jobketten aufrufen
1. Erstellen Sie einen Job CallJobchain
<?xml version="1.0" encoding="ISO-8859-1"?>
<job order="yes" stop_on_error="no" enabled="yes" name="CallJobchain"> <settings> <log_level><![CDATA[debug9]]></log_level> </settings> <params/> <script language="javascript"> <![CDATA[ function spooler_process()\{ var thisOrder = spooler_task.order; var order = spooler.create_order(); var execute_jobchain = thisOrder.params.value("execute_jobchain"); order.id = thisOrder.id + "_next" ; order.params.merge(thisOrder.params); spooler.job_chain( execute_jobchain ).add_order( order ); return true; \} ]]> </script> <run_time/> </job>
2. Erstellen Sie mit dem Jobwizzard einen Sync-Job
<?xml version="1.0" encoding="ISO-8859-1"?>
<job title="Synchronize Job Chains" order="yes" tasks="1" enabled="yes" name="Sync"> <description> <include file="jobs/JobSchedulerSynchronizeJobChains.xml"/> </description> <params/> <script language="java" java_class="sos.scheduler.job.JobSchedulerSynchronizeJobChains" java_class_path=""/> <run_time/> </job>
3. Erstelle Sie eine Jobkette JobchainSampleChainNext mit n Knoten und fügen Sie dem letzten Knoten den Sync Job zu
<?xml version="1.0" encoding="ISO-8859-1"?>
<job_chain orders_recoverable="yes" visible="yes" name="JobchainSampleChainNext"> <job_chain_node state="100" job="job_sample_4" next_state="sync" error_state="error"/> <job_chain_node state="sync" job="Sync" next_state="success" error_state="error"/> <job_chain_node state="success"/> <job_chain_node state="error"/> </job_chain>
4. Erstellen Sie eine Jobkette sampleNestedJobchain. Ein Knoten wird CallJobchain zugewiesen. In diesem Knoten setzen Sie einen Parameter execute_jobchain=JobchainSampleChainNext. Danach folgt der Sync-Knoten.
<?xml version="1.0" encoding="ISO-8859-1"?>
<job_chain orders_recoverable="yes" visible="yes" name="sampleNestedChain"> <job_chain_node state="100" job="job_sample_1" next_state="200" error_state="error"/> <job_chain_node state="200" job="job_sample_2" next_state="callNext" error_state="error"/> <job_chain_node state="callNext" job="CallJobchain" next_state="sync" error_state="error"/> <job_chain_node state="sync" job="Sync" next_state="300" error_state="error"/> <job_chain_node state="300" job="job_sample_3" next_state="success" error_state="error"/> <job_chain_node state="success"/> <job_chain_node state="error"/> </job_chain>