Table of Contents |
---|
Scope
- Use Case
- Run parts of a job chain in parallel, where the i.e.
- split jobs for parallel processing,
- join up jobs after parallel processing.
- Run parts of a job chain in parallel, where the i.e.
- Solution Outline
- Two standard JITL Jobs are provided for this:
- JobSchedulerJobChainSplitter
- splits an incoming order into multiple orders that are run in parallel through a job chain within a range of predefined job chain nodes.
- JobSchedulerJoinOrders
- joins the orders that have previously been split in a job chain node, i.e. this job forces any split orders to complete to this job chain node before processing continues.
- JobSchedulerJobChainSplitter
- Two standard JITL Jobs are provided for this:
- References
- How to Execute Jobs in a Job Chain in Parallel for an overview of the methods available for Parallel Execution within a Job Chain
- Example showing how to set up a splitter job
Solution
- Download nested_parallel_execution.zip
- Extract the archive to a folder
./config/live
of your JobScheduler Master installation. - The archive will extract the files to a folder
nested_parallel_execution.
- You can save the sample files in any folder as you like, the solution does not require the use of specific folder names. Job names can be freely chosen, with the exception of JITL jobs - which here are JobChainSplitter and join.
Job Chain Pattern
Flowchart |
---|
order [label="start",fillcolor="green"] job_chain [label="Job Chain",fillcolor="orange"] split [label="split",fillcolor="lightskyblue"] split_100 [label="split:100",fillcolor="lightskyblue"] split_200 [label="split:200",fillcolor="lightskyblue"] split2 [label="split",fillcolor="white"] split2_100 [label="split",fillcolor="white"] split2_200 [label="split",fillcolor="white"] join2 [label="join2",fillcolor="white"] split_300 [label="split:300",fillcolor="lightskyblue"] split_400 [label="split:400",fillcolor="lightskyblue"] join [label="join",fillcolor="lightskyblue"] 300 [label="300",fillcolor="lightskyblue"] success [label="success ",fillcolor="orange"] order -> job_chain job_chain -> split split -> split_100 split -> split_200 split_200 -> split2 split2 -> split2_100 split2 -> split2_200 split2_100 -> join2 split2_200 -> join2 split -> split_300 split -> split_400 split_100 -> join join2 -> join split_300 -> join split_400 -> join join -> 300 300 -> success |