Scheduled Jobs

Top  Previous  Next

The primary purpose of the Scheduler is automatic non-interactive execution of actions according to a user-defined time schedule.

To run, a scheduled job requires the following:

Context mask that matches the contexts from which the action will be executed
Name of an action to execute
Any input parameter(s) required for the action
At least one trigger to determine when the action is executed

The scheduler stores its internal state persistently. This means that when the server is restarted, the scheduler can detect if any scheduled jobs were missed (not launched) while the server was down.

The Scheduler executes actions in non-interactive mode. Actions that don't support non-interactive execution cannot be scheduled. See the actions section for further details.

note_further-wt

Every user has his own set of Scheduled Jobs.

Basic properties of a scheduled job are described here.

Job Triggers

The scheduler can be triggered by either of two types of triggers.

note_glossary-term

Trigger - an act that sets in motion some course of events.

Simple Triggers

According to a single simple schedule trigger, action is executed predefined number of times with a fixed period. It is also possible specify start and end of time interval when the execution may take place. It is possible to define more then one trigger of this type. When execution is finished (this may happen because repeat count or end time is reached), the corresponding trigger is automatically removed from schedule. Properties of simple triggers are described here.

Advanced Triggers

Advanced schedule triggers allow complex execution patterns like "execute every minute starting at 2pm and ending at 2:59pm, every day" or  "execute at 10:15am on every last Friday of every month during the years 2002, 2003, 2004 and 2005". There can be more than one such trigger. Triggers are automatically removed from the schedule when no executions should happen in the future, but in practice this happens only if the Year option is set to some finite range of years. Properties of advanced triggers are described here.

note_further-wt

Execution may not be scheduled for any combination of Day of Month and Day of Week at the same time. If execution pattern for any Day of Month is set to a non-Never value, patterns for every Day of Week must be set to Never and vice versa.

Administering Scheduler

Two contexts are used to administer scheduled jobs: One is the general Scheduled Jobs context, which serves as a container. The other is the Scheduled Job context, which holds the information for one scheduled action.

ls_jobs

Scheduled Job Configuration

Job Properties

This property defines basic options of a scheduled job.

Field Description

Field Name

Job Name. Name of the scheduled job context. It should satisfy the context naming conventions. Name is required to refer to this job from other parts of the system. It cannot be changed after creation of the job.

name

Job Description. Textual description of the job. This is also a description of the Scheduled Job context.

description

Job is Enabled. All triggers of enabled jobs are active and job is executed. When job is re-enabled after being disabled for some time all misfired triggers are executed.

enabled

Context Mask. Context mask defines a number of contexts to call the scheduled action from. When scheduled job is launched, selected action is launched in consecutive order from every context that matches to the mask.

mask

Action. Name of the action to be launched.

action

Parameters. Action-specific parameters. These parameters are used to substitute user input when scheduler job executes action in non-interactive mode. For example, if scheduled action requires confirmation (i.e. asks user something like "Delete query?" and allows to click OK or Cancel), this field will contain a "Delete query?" parameter with two possible choices: "OK" and "Cancel".

input

These properties may be accessed through the jobDetailsView variable.

Simple Schedule

This property defines one or more simple triggers for a scheduled job. It has multi-line format.

Field Description

Field Name

Start Date/Time. Time before that execution is not allowed according to this trigger. Default value is <Not set>, so execution starts immediately after the trigger is created.

startTime

End Date/Time. Time after that execution is not allowed according to this trigger. Execution ends and trigger is deleted when this time comes. Default value is <Not set>, so execution is ended when Repeat Count is reached or continues endlessly is Repeat Count is set to 0.

endTime

Repeat Count. Number of executions. Execution ends and trigger is deleted when job is executed Repeat Count times according to this trigger. Default value is 0 what means "execute unlimited number of times". If this option is set to zero, execution may end only when End Date/Time comes if is defined.

repeatCount

Repeat Interval. Specified in seconds.

repeatInterval

Simple schedule may be accessed through the triggersView variable.

Advanced Schedule

This property defines one or more advanced triggers for a scheduled job. It has multi-line format.

Field Description

Field Name

Day of Month. Specifies execution pattern for every day of month: always, nearest weekday of never.

dayOfMonth

Month. Defines for which months execution is enabled.

month

Day of Week. Specifies execution pattern for every day of week: always, first, second, third, last or never.

dayOfWeek

Year. Specifies a range of years for those execution is allowed. It is a combination of comma separated years or year ranges, i.e. "2003, 2004, 2006-2008". Empty value causes endless execution every year.

year

Time. Execution time. Job is executed at that time every day for which execution is allowed by other trigger options. The only way to specify more then one execution time is to create several triggers.

time

Start Date/Time. Time before that execution is not allowed according to this trigger. Default value is <Not set>, so execution starts immediately when combination of other options will allow it.

startTime

End Date/Time. Time after that execution is not allowed according to this trigger. Trigger is deleted automatically when this time comes.

endTime

Advanced schedule may be accessed through the cronTriggersView variable.

Examples of Advanced Schedule Triggers

Day of Month

All days : Always (execute on every day of month)

Month

All months : Enabled

Day of Week

All days : Never (disabled, Day of Month is used in this pattern)

Year


Time

09:00:00

Start Date/Time

<Not set>

End Date/Time

<Not set>

Execution Pattern

At 9:00am every day.

Day of Month

All days : Always

Month

All months : Enabled

Day of Week

All days : Never

Year

2005

Time

09:00:00

Start Date/Time

<Not set>

End Date/Time

<Not set>

Execution Pattern

At 9:00am every day during the year 2005.

Day of Month

All days : Never

Month

Mar : Enabled, others months: Disabled

Day of Week

Wed : Always, other days : Never

Year


Time

17:55:00

Start Date/Time

<Not set>

End Date/Time

<Not set>

Execution Pattern

At 5:55pm every Wednesday in the month of March.

Day of Month

All days : Never

Month

All months : Enabled

Day of Week

Mon - Fri : Always, other days : Never

Year


Time

05:15:00

Start Date/Time

<Not set>

End Date/Time

<Not set>

Execution Pattern

At 5:15am every Monday, Tuesday, Wednesday, Thursday and Friday.

Day of Month

15th: Always, other days : Never

Month

All months : Enabled

Day of Week

All days : Never

Year


Time

09:00:00

Start Date/Time

<Not set>

End Date/Time

<Not set>

Execution Pattern

At 9:00am on the 15th day of every month.

Day of Month

All days : Never

Month

All months : Enabled

Day of Week

Fri: Last, other days : Never

Year


Time

09:00:00

Start Date/Time

<Not set>

End Date/Time

<Not set>

Execution Pattern

At 9:00am on the last Friday of every month.

Day of Month

All days : Never

Month

Jan - Mar : Enabled, other months : Disabled

Day of Week

Fri: Last, other days : Never

Year

2006 - 2008

Time

09:00:00

Start Date/Time

<Not set>

End Date/Time

<Not set>

Execution Pattern

At 9:00am on the last Friday of every January, February and March during years 2006, 2007 and 2008.

Day of Month

All days : Always

Month

All months : Enabled

Day of Week

All days : Never

Year


Time

09:00:00

Start Date/Time

01.07.2007 00:00:00

End Date/Time

01.08.2008 00:00:00

Execution Pattern

At 9:00am every day, first execution at 01.07.2007 09:00:00, last execution at 31.07.2007 09:00:00.