THIS PAGE IS 'WORK IN PROGRESS'
Requirements
- The JobScheduler must run using a database.
- Events are stored permanently in the table "SCHEDULER_EVENTS".
- The JobScheduler must be installed with the Event-Service (JobChain sos/events/scheduler_event_service)
[[File:Sos-event-service.png]]
Szenario
The following diagram shows the pre-own 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.
- JobChain10: Job10, Job11, Job12, Job13
- JobChain20: Job20, Job21, Job22, Job23
All other jobs are started by orders that 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.
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 JobRep10 to JobRep40 within the job handler.