Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
outlinh1. true
outlinh1. true
1printablefalse
2stylh1. none
3indent20px

Starting a job chain from a running job chain

1. create a job CallJobchain

Code Block
 <job order="yes"
     stop_on_error="no"
     enabled="yes"
     >
    <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. create a "sync job" named "sync" using the job wizzard in JOE

Code Block
 <job title="Synchronize Job Chains"
     order="yes"
     tasks="1"
     enabled="yes"
     >
    <description>
        <include file="jobs/JobSchedulerSynchronizeJobChains.xml"/>
    </description>
    <params/>
    <script language="java"
            java_class="sos.scheduler.job.JobSchedulerSynchronizeJobChains"
            java_class_path=""/>
    <run_time/>
 </job>

3. Create a job chain JobchainSampleChainNext with n nodes and add a node with sync job.

Code Block
 <job_chain orders_recoverable="yes"
           visible="yes"
           >
    <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. Create a job chain sampleNestedJobchain. One node is assigned to CallJobchain. This node sets the parameter execute_jobchain=JobchainSampleChainNext. The sync job is the succesor of this node.

Code Block
 <job_chain orders_recoverable="yes"
           visible="yes"
           >
    <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>