Scheduling

Flow supports both simple interval based timers and complex Cron expressions.

These are persistent around restarts, and may be configured to avoid reentrancy (starting another job run when the previous one hadn't finished yet).

Since scheduling results in eventual activity, these are implemented as Stateful Behaviors, of the classes timer and cron respectively.

Both behaviours are configured with a Flow to invoke when they tick.

A timer is also configured with a period (how often it should fire), and a delay (how long it should take before first fire).

A cron is configured with a cron expression and a native timezone.