Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Availability
Display feature availability StartingFromRelease 1.11.4 - See How to Execute Jobs in a Job Chain in Parallel for more information.
Example: Multiple parallel processes in a job chain
...
Anchor | ||||
---|---|---|---|---|
|
The example job chain will look like this:
Flowchart |
---|
Order [label="insert to export table",fillcolor="green"] JobChainStart [label="JobChainStart",fillcolor="orange"] truncate_export_table [label="truncate_export_table",fillcolor="lightskyblue"] JobChainSplitter1 [label="split_partitions",fillcolor="lightskyblue"] export_table_partition_1 [label="split_partitions:export_table_partition_1",fillcolor="white"] export_table_partition_2 [label="split_partitions:export_table_partition_2",fillcolor="white"] export_table_partition_3 [label="split_partitions:export_table_partition_3",fillcolor="white"] export_table_partition_4 [label="split_partitions:export_table_partition_4",fillcolor="white"] join_partitions [label="join_partitions",fillcolor="lightskyblue"] post_export_table_build_tasks [label="post_export_table_build_tasks",fillcolor="lightskyblue"] JobChainSplitter2 [label="split_test",fillcolor="lightskyblue"] export_table_partition_1 [label="split_test:run_export_table_data_tests_partition_1",fillcolor="white"] export_table_partition_2 [label="split_test:run_export_table_data_tests_partition_2",fillcolor="white"] export_table_partition_3 [label="split_test:run_export_table_data_tests_partition_3",fillcolor="white"] export_table_partition_4 [label="split_test:run_export_table_data_tests_partition_4",fillcolor="white"] join_test[label="join_test",fillcolor="lightskyblue"] job1 [label="100",fillcolor="lightskyblue"] success [label="success",fillcolor="orange"] Order -> JobChainStart JobChainStart -> truncate_export_table truncate_export_table -> JobChainSplitter1 JobChainSplitter1 -> export_table_partition_1 JobChainSplitter1 -> export_table_partition_2 JobChainSplitter1 -> export_table_partition_3 JobChainSplitter1 -> export_table_partition_4 export_table_partition_1 -> join_partitions export_table_partition_2 -> join_partitions export_table_partition_3 -> join_partitions export_table_partition_4 -> join_partitions join_partitions -> post_export_table_build_tasks post_export_table_build_tasks -> JobChainSplitter2 JobChainSplitter2 -> run_export_table_data_tests_partition_1 JobChainSplitter2 -> run_export_table_data_tests_partition_2 JobChainSplitter2 -> run_export_table_data_tests_partition_3 JobChainSplitter2 -> run_export_table_data_tests_partition_4 run_export_table_data_tests_partition_1 -> join_test run_export_table_data_tests_partition_2 -> join_test run_export_table_data_tests_partition_3 -> join_test run_export_table_data_tests_partition_4 -> join_test join_test -> job1 job1 -> success |
We refer to the pattern that results in this type of job chain as a "diamond" pattern. Such patterns can occur more than once in a job chainJob Chain: both sequentially, as shown in the diagram above, in parallel and nested. They can also be combined with other job chain patterns such as emerald or cross-over patterns (see Example showing the synchronization of multiple job chains).
...
The next illustration shows a list view of the job chain as created by JOE:
The "Splitter" job
...
For more information see the documentation for the JobSchedulerJoinOrders job.
Related Downloads
- You can download the example from: parallel_execution.zip .
See also
- Documentation of the JITL jobs:
- A overview of the use of Split & Join Jobs:
- Job Dependencies in the JobScheduler:
...