...
Flowchart |
---|
job_chain [label="Job Chain",fillcolor="orange"] job_1 [label="Job 1",fillcolor="lightskyblue"] job_2 [label="Job 2",fillcolor="lightskyblue"] job_split [label="Job Split",fillcolor="lightskyblue"] job_3 [label="Job 3",fillcolor="lightskyblue"] job_3a [label="Job 3a",fillcolor="lightskyblue"] job_4 [label="Job 4",fillcolor="lightskyblue"] job_4a [label="Job 4a",fillcolor="lightskyblue"] job_5 [label="Job 5",fillcolor="lightskyblue"] job_sync [label="Job Synchronize",fillcolor="lightskyblue"] job_chain -> job_1 job_1 -> job_2 job_2 -> job_split job_split -> job_3 job_split -> job_4 job_3 -> job_3a -> job_sync job_4 -> job_4a -> job_sync job_sync -> job_5 |
Implementation
Components
- The job chain and jobs
job1
tojob5
provided by the sample are not specifiic for this solution, they represent most simple shell scripts. - The job
split_partitions
is the Splitter JITL Job provided with the Java classcom.sos.jitl.splitter.JobChainSplitterJSAdapterClass
.- The job is used with the following parameters:
state_names
: a list of semicolon separated job node states to which splitted orders are added. For each entry in this list an individual order is created.- The state names correspond to the states that the respective jobs are associated with in the job chain definition.
- In order to support better graphical output for the JOE diagram view the state names are prefixed with the state of the
split_partitions
job (corresponding its name), a colon and the name of the job associated with the state. Example for state ofjob3
:split_partitions:job3
- Example for
state_names
parameter value:split_partitions:job3;split_partitions:job4
sync_state_name
: this parameter is only required for improved graphical output from JOE. It assumes the value of the state that is associated with thesync_partitions
job.
- Any number of jobs can follow the jobs that are referenced by the
state_names
parameter.
- The job is used with the following parameters:
- The job
job_chain1.sync_partitions
is used to synchronize splitted orders and is provided by the Sync JITL Job with the Java classcom.sos.jitl.sync.JobSchedulerSynchronizeJobChainsJSAdapterClass
.- The recommended naming convention for this job includes to use the job chain name as a prefix: due to the nature of this job to synchronize across all job chains that are running in the system and that make use of the same sync job name you should prefix the job chain name to the job name if you want this job to be limited to work for the current job chain.
- This job is used without parameters.
Usage
- Add an order to job chain
job_chain1
by use of JOC. - Consider the processing that would
- split the execution into two subsequent orders that run for
job3->job3a
andjob4->job4a
. - move the current order to the sync node.
- split the execution into two subsequent orders that run for
- The processing for
job3->job3a
andjob4->job4a
will require different execution time. All orders will wait in thesync_partitions
job node for any splitted order to arrive and with splitted orders being complete the processing will continue withjob5
.