Stage 2 : Schedule the Enabled Task Instances

The Scheduler schedules task instances that are in the ENABLED status and have valid occurrences in the future. A task with a recurrence of SINGLE has one valid occurrence for a day. A task with a recurrence of MULTIPLE, may have many occurrences through the day.

For example, the valid occurrences for a task that starts at 3:30 and runs every 15 minutes, for a maximum of 4 times are – 3:30, 3:45, 4:00, 4:15.

The scheduling logic follows the following guidelines:

  • If a task has a start time defined, then the Scheduler will try to schedule the task for that time in the specified time zone region for the current day.

    • If the time has passed and the task recurrence is SINGLE, then schedule it for the next day.

    • If the time has passed and the task recurrence is MULTIPLE, then check if there are any valid occurrences in the future. If they exist, then schedule adjusted remaining occurrences, else schedule for the next day.

  • If a task has no start time defined, then schedule it for immediate execution.

  • Ensure compliance with daylight savings changes at the specified time zone.

To better understand the scheduling logic around valid occurrences, see the examples below:

Use Cases Expected Behavior

Task configured to run every 30 minutes, with startTime defined as 3:30 PM.

No invocation limits specified.

New Scheduler Day – 5:15 PM

Occurrences - 5:30 PM, 6 PM and so on.

Task configured to run every 30 minutes, with startTime defined as 3:30 PM.

Max occurences - 10

New Scheduler Day – 5:15 PM

Occurences – 5:30 pm, 6 pm, 6:30 pm, 7 pm, 7:30 pm, 8 pm

Notification will be generated as the first 4 occurrences had elapsed

At the end of these two stages, the necessary schedules have been setup.