Skip to main content
Introduction to Schedule Trigger

Process development

Ossi Galkin avatar
Written by Ossi Galkin
Updated over 7 months ago

Schedule Trigger

When needing to start a Process within a specific schedule you can use a Schedule Trigger. Schedules can be configured to start in specific intervals within set time and date ranges or to execute once at given dates and times.

Please note that Processes are scheduled with only best effort guarantees: the Process will be started if the schedule is open when the scheduling database is polled. Because the poll delay is one second by default, this can mean that the actual execution of a process may start 1-2 seconds later than the actual scheduled time. Therefore you should not create too short time windows or expect that the Processes will start at exactly the given time.

Once a Process has been launched, it will be allowed to start and execute. This means that if you launch Process with a large number of Tasks, the execution of the Process Instance may take a long time, continuing even after the time window has ended. If this becomes a problem for you, Process executions should be scheduled more evenly in time.

When a scheduled Process is created, imported or activated, it will execute when the time window next opens.

Any Process can contain multiple schedule Triggers if you need to have different or overlapping schedules. To add multiple schedule Triggers, simply add a Start Element to the Process Canvas and connect it to the first step of the Process. However, please note that each schedule is evaluated separately, so you may get more than one execution of a Process triggered at the same time.

You can limit a Process to run only one scheduled Instance at a time by setting the Run only one scheduled instance at a time option for the Trigger. For example, if a Process is scheduled to execute every 10 minutes, but a Process Instance takes 13 minutes to complete, a new Process Instance will be scheduled to start after the previous Process Instance has finished, i.e. about 14 minutes after the start of the previous Instance. In short, if the setting Run only one scheduled instance at a time is toggled and a previous Instance takes more time that the set interval is, the next Instance will run after the previous Instance has finished.

However, please note that if you start a Process manually e.g. with the "Run Once" action, the new Instance will be executed, even if the Run only one scheduled instance at a time setting was turned on and a previous Instance was already running. This is because the setting is only checked for scheduled Process Instances.

You can also set a schedule to be open only on specific days of the week or month. For monthly schedules, you can also define it to be open e.g. on the first or last day (or weekday or e.g. Monday) of a month, based on the day ranks (Note that if you choose multiple days, they will all be counted, and weekday/weekend day options will override any specific days). Also, if you use the explicit days option to execute a Process e.g. on the 30th of each month, the day check is exact, so the schedule will not actually be open on February, with no 30th.

For more complex scenarios, you can also give specific dates (e.g. bank holidays) when the schedule should or should not execute. To do this, just add the dates to the Chosen dates list and choose if the schedule should be open "Only on these dates" or "Never on these dates". You can also import the dates from a .ics file. Please note that the excluded dates will be evaluated separately from the other date limits, and after any season limits are checked. This means that if you e.g. have a schedule that runs on the first of every month, but exclude bank holidays, the Process will not run in January at all, as the 1st of January would be a bank holiday. Also, if you have defined a season end time, e.g. 2017-12-31, the Process will not run after it, even if you would have explicitly chosen a date after the season end, e.g. 2018-01-06.

The next article is Introduction to File Trigger

Did this answer your question?