...
Flowchart |
---|
# order_A [shape="ellipse",label="Order A\n start time: Friday 08:00 ",fillcolor="violet"] # order_B [shape="ellipse",label="Order B\n start time: Friday 07:00 ",fillcolor="violet"] # order_Z [shape="ellipse",label="Order Z\n start time: Friday 15:00 ",fillcolor="violet"] job_chain_1 [label="Job Chain 1\nhas no relevant dependencies",fillcolor="orange"] job_chain_2 [label="Job Chain 2\nis started by Job Chain 1",fillcolor="orangeviolet"] job_chain_3 [label="Job Chain 3\nis started by Job Chain 1",fillcolor="orangelightskyblue"] job_chain_4 [label="Job Chain 4\nis started by Job Chain 1",fillcolor="orangeaquamarine"] job_chain_5 [label="Job Chain 5\nis started by Job Chain 1",fillcolor="orangeorangered"] job_chain_6 [label="Job Chain 6\nis started by Job Chain 4",fillcolor="orangekhaki"] split1 [label="Split 1", fillcolor="lightskyblueorange"] job1 [label="Job 1", fillcolor="lightskyblueorange"] job2 [label="Job 2", fillcolor="lightskyblueorange"] sync1 [label="Sync 1", fillcolor="lightskyblueorange"] job1_2 [label="Job 1.2", fillcolor="lightskyblueorange"] job3 [label="Job 3", fillcolor="lightskyblueviolet"] job4 [label="Job 4", fillcolor="lightskyblueviolet"] job5 [label="Job 5", fillcolor="lightskyblue"] job6 [label="Job 6", fillcolor="lightskyblue"] job7 [label="Job 7", fillcolor="lightskyblueaquamarine"] job8 [label="Job 8", fillcolor="lightskyblueaquamarine"] job9 [label="Job 9", fillcolor="lightskyblueaquamarine"] job10 [label="Job 10", fillcolor="lightskyblueorangered"] job11 [label="Job 11", fillcolor="lightskyblueorangered"] job12 [label="Job 12", fillcolor="lightskyblueorangered"] job13 [label="Job 13", fillcolor="lightskybluekhaki"] job_chain_1 -> split1 split1 -> job1 -> sync1 -> job1_2 split1 -> job2 -> sync1 sync1 -> job1_2 job1 -> job_chain_2 -> job3 -> job4 job2 -> job_chain_3 -> job5 -> job6 job1_2 -> job_chain_4 -> job7 -> job8 -> job9 job1_2 -> job_chain_5 -> job10 -> job11 -> job12 job9 -> job_chain_6 -> job13 job8 -> job4 job11 -> job4 job11 -> job6 job13 -> job12 |
Implementation
Components
- The solution contains three job chains:
job_chain_A
andjob_chain_B
represent the predecessor job chains that have no relevant dependencies withjob_chain_Z
.job_chain_Z
is the final job chain that checks ifjob_chain_A
andjob_chain_B
have already been executed successfully.
- The solution implements a job
check_predecessor_job_chain_Z
that has been added at the start ofjob_chain_Z
.- This job makes use of a parameter
check_job_chains
that is assigned a semicolon separated list of job chain names.- Job chain names can be specified with an absolute path (starting from the
live
folder) or with a path relative to the directory of this job. - Example:
check_job_chains = job_chain_A;job_chain_B
- Job chain names can be specified with an absolute path (starting from the
- This job implements a
spooler_process()
function that reads the parameters and checks the job cahin history for successful execution of the job chains specified by the parameter. - Should all checks for previous successful execution provide a positive result then the current order will be moved to the next job chain node. Otherwise the current order is set back and will be repeated regularly according to the setback configuration for this job.
- This job makes use of a parameter
...