Technical Requirement

The JobScheduler must be installed including the Event-Service (JobChain sos/events/scheduler_event_service)

The job chain scheduler_event_service will run at predetermined intervals or whenever an event is created and checks all .xml data files in folder $SCHEDULER_DATA//config/events.

For more Information see:

Szenario

In this example 7 reports (JobRep10 - JobRep70) are to be created which depends on different combinations of other successfully finished jobs (Job10 - Job43). Within these jobs we also have dependencies, so the predecessors of the reports are not finished at the same time and the reports have to wait before they can start.

The following diagram shows the given dependencies:

At the beginning we have two job chains with defined orders. Both job chains contain 4 jobs with 3 of them executed in parallel.

  1. JobChain10: Job10, Job11, Job12, Job13
  2. JobChain20: Job20, Job21, Job22, Job23

All other jobs are started by orders which are created from the event handler.

Realisation

Definition of the job chains

Except the jobs in JobChain10 and JobChain20 all other jobs are packed seperately into job chains completed by steps for the creation of events. So we have at least 15 job chains.

For each combination of predecessor and successor we need an event - named as "ev_<predecessor job>_<successor job>"

Setting the Events in Job Chains

We define the job EventAdd using the JITL-class sos.scheduler.job.JobSchedulerSubmitEventJob 
to store the events into the database. Please notify that the standard configuration monitor is needed as post-processing.

The parameters which are needed by the job EventAdd are defined at the job chain steps (example:JobChain31):

When Job31 has finished correctly three events are set:

  • ev_Job31_Job41
  • ev_Job31_JobRep60
  • ev_Job31_JobRep30

Creation of the orders in Event handler

The event handler is installed by using JOE: File --> New --> Event Handler.

For each job chain which is started by events we need an action defined in the event handler. An action has the two parts:

  • Events ("if-clause")
  • Command ("then-clause")

An event is uniquely defined by event class and event ID. Together with and/or/not the events of a group are combined to the condition.

In the command part the order is defined to start the job chain. The name of the started job chain and the first step are to be put in. Click the button StartJobChain to initiate the order definition.

Every event which is used in the condition has to be deleted from the database with the Command remove event.

Setting events in Event Handler

For the last report job chain JobRep70 we have a special situation. It is not necessary to wait until the four predecessor report jobs are finished but they have all been startet before jobRep70 can also starts. So we add the events for the last report in parallel to the start orders for the four reports JobChainRep10, JobChainRep20, JobChainRep30 and JobChainRep40 within the actions.

Controlling Events in JID (JobScheduler Information Dashboard)

For the controlling of the events you may use the JID component Events

In the part events you see all events which are active at that moment. Here the situation is shown when only JobChain10 has been started and JobChain20 is still missing.

In the part Event Handler all defined events are listed including the status missing/active