You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

Starting a job chain from within a running job chain is effected with the following steps:

1. Create a job CallJobChain

 <job order="yes">
    <params/>
    <script language="javax.script:ecmascript"><![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 synchronization job with the name sync using the job wizzard in JOE:

 <job title="Synchronize Job Chains"
     order="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 some nodes and add a node with a synchronization job:

 <job_chain>
    <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 to the value JobchainSampleChainNext. The synchronization job is the succesor of this node.

 <job_chain>
    <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>
  • No labels