Scheduling

Unknown macro: {scrollbar}

The Pentaho BI platform currently employs Quartz as its scheduler. The implementation is a singleton that is JDBC persisted. It is fault tolerant and fault recoverable. Scheduled misfires are handled according to a set of predefined rules.

Access to the scheduler is through the org.pentaho.plugin.quartz.JobSchedulerComponent by implementing an Action Sequence. Samples can be found in test/scheduler/. There are currently four different actions available to the job scheduler. "startJob", "suspendJob", "resumeJob", and "deleteJob".

Start Job

Creates a job and a trigger and then registers the job and trigger for execution with the scheduler. In the case of a "Simple Trigger", actual job execution occurs when the trigger condition is met and occurs at the defined repeat interval until the number of defined repeat cycles has occurred. In the case of "Cron Trigger" the firing of the job occurs according to the rules set forth in the cron expression string (see below). The job itself is a solution document that is to be performed. This allows the scheduling of any other existing solution such as printing and email. In the event of a fault such as power failure, system crash, etc., after the scheduler restarts it will apply the misfire rules to any trigger that has misfired. The values of the "jobName", "triggerType" (and the trigger types associated inputs), "solution", "path", and "action" need to be defined in the solution document.

Component Name: JobSchedulerComponent

Inputs:

REQUIRED
solution -- name of the solution the xaction resides in.

path -- path in the solution the xaction reside in.

action -- the name of the xaction to schedule.

jobname -- arbitrary job name for this schedule

triggertype --  Valid values ae "simple" and "cron".  Each of these values require additional information.  See Triggers

OPTIONAL
misfirePolicy -- See Misfires 

Suspend Job

Pauses a specified running job. Once the job is paused the only way to start it again is with a resume job.

Component Name: JobSchedulerComponent

Inputs:

REQUIRED
jobName -- Name of the job to be suspended.

Outputs:

None

Resume Job

Resumes a previously suspended job. Once the job is resumed it will apply the misfire rules if required.

Component Name: JobSchedulerComponent

Inputs:

REQUIRED
jobName -- Name of the job to be resumed.

Outputs:

None

Delete Job

Deletes a specified job. The job is deleted immediately. However if a job is currently executing in a scheduler thread then it will continue to execute. No new instances of the job will be scheduled. The only input for this action is a "jobName".

Component Name: JobSchedulerComponent

Inputs:

REQUIRED
jobName -- Name of the job to be deleted.

Outputs:

None