3.9. Timers

A timer node has a delay and a period. The delay specifies the amount of time to wait after node activation before triggering the timer the first time. The period defines the time between subsequent trigger activations; a period of 0 results in a timer that does not repeat.
The syntax for defining the delay and period is the following:
[#d][#h][#m][#s][#[ms]]
With this syntax, it is possible to specify the amount of days, hours, minutes, seconds, and milliseconds (which is the default if nothing is specified). For example, the expression "1h" will wait one hour before triggering the timer.
The expression could also use #{expr} to dynamically derive the period based on a process variable or a more complex expression based on a process variable (e.g. myVariable.getValue()).
The timer service is responsible for making sure that timers get triggered at the correct time. Timers can also be cancelled, which means the timer will no longer be triggered.
A timer event may be added to the process flow. Its activation starts the timer, and when it triggers, once or repeatedly, it activates the timer node's successor. This means that the outgoing connection of a timer with a positive period is triggered multiple times. Canceling a timer node also cancels the associated timer, after which no more triggers will occur.