Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Scope

  • split the execution to multiple job chains and synchronize for the execution of a subsequent job chain

Split & Sync Pattern

Diagram

 

Graphviz
digraph { 
  "Chain B" [shape="box",label="Chain B\nWorkDays\n18:00"] 
  "Chain D" [shape="box",label="Chain D\n1) WorkDays immediately\nafter Chain B\n2) unconditionally without\npredecessor at 15:00"] 
  "Chain E" [shape="box",label="Chain E\n1) WorkDays immediately\nafter Chain B\n2) unconditionally without\npredecessor at 16:00"] 
  "Chain F" [shape="box",label="Chain F\n1) WorkDays at 19:30\nafter Chain B completed\n2) unconditionally\nwithout predecessor at 19:30"] 
  "Chain G" [shape="box",label="Chain G\n1) WorkDays at 20:00\nafter Chain B completed\n2) unconditionally\nwithout predecessor at 20:00"] 
  "Chain I" [shape="box",label="Chain I\n1) WorkDays after\nChains D, E, F, G completed\n2) undconditionally\nwithout predecessor at 14:00 on Sat only 14:00"]

  "Chain B" -> "Chain D"
  "Chain B" -> "Chain E"
  "Chain B" -> "Chain F"
  "Chain B" -> "Chain G"

  "Chain D" -> "Chain I"
  "Chain E" -> "Chain I"
  "Chain F" -> "Chain I"
  "Chain G" -> "Chain I"
}

Explanations

  • As a general rule: whenever a predecssor job chain would have been purged then the job chain would be executed based on its invidual schedule
  • All Job Chains have to complete successfully otherwise they would block the processing of their successors.
  • At any point in time additional dependencies can be added, e.g. in addition to Job Chain B a Job Chain B2 could be created with the same dependencies.
  • For all Job Chains the calendar has to be active otherwise the job chain would not be part of the daily plan.
  • Job Chain I
    • Job Chain I is executed on workdays immediately after the execution of the previous job chains, i.e. some time after 18:00.
    • Job Chain I is executed on Saturday at 14:00 independent from previous job chains.

Use Cases

  • Job Chain B
    • is removed or is not active at 15:30.
      • Job Chain E will start at 16:00.
    • is removed or is not active at 17:45
      • Job Chain E will start immediately.
    • is removed or is not active at 19:00
      • If Job Chain B has already been successfully executed then it is no more part of the daily plan and cannot be removed.
      • If Job Chain B has already been unsuccessfully executed then
        • it can be removed and Job Chain E will start immediately.
        • if it is not removed then Job Chain E will not start.
      • If Job Chain B has not yet completed then it can be removed and Job Chain E will start immediately.

Test Cases

...