Table of Contents | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Assume you want to create a job chain but some parts of the chain should run in parallel. You want to define all nodes in one chain.
...
Example: Multiple parallel processing in a single job chain
*
Beispiel: Wir wollen eine Jobkette erstellen die zunächst 6 insert table jobs parallel ausführt. Wenn alle 6 Jobs fertig sind soll ein create Index Job gestartet werden. Danach sollen mehrere test Jobs über die erstellten Daten laufen. Die tes Jobs sollen wieder parallel ausgeführt werden.Case: We like to create a job chain which runs six insert table jobs in parallel.
After processing those 6 jobs we want to process a create index job.
Then we want to run several test jobs on the data. The processing of the test jobs should be parallel.
*
Diagram der Jobkette (erstellt mit einer experimentellen JOE-Version, die zukünftig ausgeliefert wird).
Diagram created with JOE (JobScheduler object editor - this is a sandbox, coming with one of the next versions)
*
Das nächste Bild zeigt eine Liste der Jobs der Jobkette in der Darstellung in JOE
This picture shows the jobs of the chain displayed by JOE Steps/Nodes
- Verwende für jede parallele Verarbeitung einen split Job einen dazugehörenden eindeutigen sync Job.
Dieser sync Job darf in einer JobScheduler Instanz in keiner anderen Jobkette verwendet werden.
Um den sync Job eindeutig zu halten empfehlen wir den Namen der Jobkette als Prefix in dem Jobnamen des sync Jobs zu verwenden.
Beispiel: insert_to_core_parallel.sync1
- Verwende für jede parallele Verarbeitung einen split Job einen dazugehörenden eindeutigen sync Job.
- Für die Namensgebung der State Namen für die parallel zu verarbeitenden Knoten empfehlen wir die Syntax state Name Splitter : state Name Job
Beispiel: split:partition_1
- Use a split job to start parallel processing with a JS instance. There has to be a corresponding sync job for each split job. This sync job has to be unique (i.e. have a unique name) and cannot be used anywhere else in the JS instance.
- Use an unique sync job for each parallel processing within one JobScheduler instance. One sync job evaluates the information from all splitter jobs where this sync job is used.
- To identify the sync jobs in JOE job list and to make sure to use a unique sync job name we strongly recommend to combine the synchronization job name with the name of the job chain using the sync job.
- We recommend to combine the parameter state_names in the splitter job as node name of splitter:jobname
Display detail from JOE showing the parameters for the first splitter job split
Display detail from JOE showing the parameters for the second splitter job split_4_test
we also recommend to use the startjob /sos/jitl/JobChainStart and the endjob /sos/jitl/JobChainEnd in {}every{*} job chain.
You can download the example from here.MultiParallel.zip