Edit Job Scheduling Rules

When editing a job's scheduling rules, you can choose from five primary scheduling rule types: Daily, Weekly, Monthly, Interval, and Custom. Each scheduling rule type has unique scheduling properties. Here are some of the scheduling properties that are common to all rule types:

Next Run Date

This field specifies the date and time when a job will run. It can't be manually edited by a user. It can only be calculated by JobServer's Scheduling engine based on the scheduling rules and related properties.

Last Run Date

This field typically defines the last date/time the job was run. Initially, when a job is created, this field will not be set. When a job runs on a scheduled time this field will reflect the date/time that the job last ran on. Note, you should not depend on this field as it can be edited by the user, although normally it will reflect the last time the job was scheduled and run.

Schedule Status

A job has three possible states: active, paused, and stopped. Active means the job will be run by the Scheduling Engine when the next run date is reached. Stopped means the job will not run at all. Paused is similar to stopped in that it does not allow a job to run. But when a job is activated from a paused state it will continue running as if it had not stopped, so it will not miss any possible scheduled times that happened between the time it was paused and re-activated.

A job can be put into paused state from an active state. When a job is paused its schedule is suspended until the job is made active again. When it is made active again, it will pick up where it left off. Note, that a stopped job can't be paused. This restriction is necessary because pause and stop impact the next run date in different ways when a job is re-activated. A paused job that is activated will pick up running where it left off, even if its next run date is in the past (it will act as if it was never suspended). A stopped job that is activated, will calculate its next valid run date that is in the future and change the next run date field to that value.

Scheduling Types

Description of the different scheduling types:

Daily

This scheduling type allows running a job on a daily pattern. A job can be run every "X" days. The "Start Date" defines the day the job should start on. Note, that the actual first run date may be different than the "Start Date" value, as the first time the job is scheduled to run is a calculated value. The "Start Time" defines at what time of day the job should run on. The job will run at this time of the day on a reoccurring basis. See the Advanced Scheduling rules to learn how to schedule a job to run multiple times during the day.

You can define special Include times and Exclude time ranges. These features allow for one-off inclusion or exclusion of specific times and time ranges, respectively. Other advanced scheduling features are described here. This also describes how you can schedule jobs to run multiple times during the day and customize these rules by days of the week.

Weekly

Allows running a job on a weekly pattern. A job can be run every "X" weeks. The "Start Date" defines the day the job should start on. Note, that the actual first run date may be different than the "Start Date" value, as the first time the job is scheduled to run is a calculated value. The "Start Time" defines at what time of day the job should run on. The job will run at this time of the day when it does run. You can select one or more days of the week that the job should run on. See the Advanced Scheduling rules to learn how to schedule a job to run multiple times during the day.

You can define special Include times and Exclude time ranges. These features allow for one-off inclusion or exclusion of specific times and time ranges, respectively. Other advanced scheduling features are described here. This also describes how you can schedule jobs to run multiple times during the day and customize these rules by days of the week.

Monthly

Allows running a job on a monthly pattern. A job can be run every "X" months. The "Start Date" defines the day the job should start on. Note, that the actual first run date may be different than the "Start Date" value, as the first time the job is scheduled to run is a calculated value. The "Start Time" defines at what time of day the job should run on. The job will run at this time of the day when it does run. You can choose one or more days of the month to run on (1-31). If you choose 31 and the month only has 30 days then the job will run on the 30th, for example. In addition, may also choose up to five monthly rules like "first Friday of the month" or "second Tuesday of the month"...etc. See the Advanced Scheduling rules to learn how to schedule a job to run multiple times during the day.

You can define special Include times and Exclude time ranges. These features allow for one-off inclusion or exclusion of specific times and time ranges, respectively. Other advanced scheduling features are described here. This also describes how you can schedule jobs to run multiple times during the day and customize these rules by days of the week.

Interval

This scheduling type is most useful when needing to run jobs multiple times in a day. Jobs can be run at the granularity of seconds, minutes or hours. For example, you can have a job run every 10 minutes or every 10 hours. Note, that unlike Daily, Weekly and Monthly, Interval does not have a daily reoccurring time, as it is not applicable here.

With this scheduling type, a job can be run using "absolute scheduling" or "relative scheduling". By using the "Use Absolute Scheduling" check box, you can choose between the two options. Absolute scheduling means the job will run relative to the original start time, so if the job has a start time of 10:00 AM and the interval is one hour then the job will run at the top of every hour. With this same example, if relative scheduling is used, the job will still run every hour but it may or may not run at the top of every hour as it will run one hour from the last time it ran last previously. So, the job is not guaranteed to run at the top of the hour, since it is a relative schedule.

You can define special Include times and Exclude time ranges. These features allow for one-off inclusion or exclusion of specific times and time ranges, respectively. You can also exclude and block out entire days of the week (for example block out Fridays or Mondays). You can also block out job schedules over certains time ranges on certain days of the week (for example, do not schedule the job between 3:00am to 7:00pm on Monday through Friday only). Other advanced scheduling features are described here.

Custom

This scheduling type can be used when all the other types do not apply. This is typically used when there is no pattern that can be represented using the other types. For example, say you want a job to run on your company's business holidays. You can enter as many arbitrary dates as you wish and customize the dates as you like. Read more.

For more information on other scheduling features, read about the advanced scheduling options available in JobServer.