Skip to content

Timer ​

Scheduler that periodically calls the components connected to Continue, at a fixed interval aligned to a time of day. Use it as the start of polling, batch and heartbeat flows. It keeps the flow running.

Pins ​

PinKindTypesDescription
StartstartanyStarts the scheduler loop. Leave it unconnected: the system calls it once when the flow starts.
ContinuecontinueViaducta.TypeSystem.Metadata.NoInputDataCalled on every tick with a new, empty record and new metadata.

Configuration ​

FieldTypeDefaultDescription
Intervalstring DD:HH:MM:SS00:00:01:00Required. Time between ticks: days (00-59), hours (00-23), minutes, seconds. 00:00:01:00 = every minute, 01:00:00:00 = every day. Must be greater than 0.
SyncStartTimestring HH:MM:SS00:00:00Required. Time of day (server local time) the ticks are aligned to.
ExecuteOnStartbooleanfalsetrue: run once immediately when the flow starts, then continue on the schedule.

Behaviour ​

  • Tick times are SyncStartTime of the current day plus whole multiples of Interval; the next tick is the first such time not in the past. Example: Interval 00:06:00:00, SyncStartTime 02:00:00 → 02:00, 08:00, 14:00, 20:00. Interval 01:00:00:00, SyncStartTime 08:00:00 → daily at 08:00.
  • On each tick Continue is called and awaited: a tick never overlaps with the previous one. Ticks that fall due while a run is still in progress are skipped; the next tick is computed after the run ends.
  • Errors in the Continue branch are logged by the system and do not stop the timer.
  • The component shows a progress bar with the countdown to the next tick, "Executing" during a run and "Stopped" after cancellation.
  • At runtime the component shows a play indicator: clicking it runs the Continue branch once immediately (a warning is shown if a run is already in progress).
  • The loop ends when the flow stops.

Notes ​

  • Invalid Interval or SyncStartTime, or an interval of 0, makes the component fail when it starts.
  • The schedule is anchored to the current day at start. For intervals longer than a day (e.g. 07:00:00:00) the weekday depends on when the flow was (re)started.
  • Times use the server local time; daylight-saving changes shift the ticks.
  • The loop checks the clock about every 200 ms, so ticks may be up to ~0.2 s late.
  • Do not connect Start to other components: every record arriving on Start starts an additional, independent timer loop.

Example ​

json
{ "Interval": "00:00:15:00", "SyncStartTime": "00:00:00", "ExecuteOnStart": true }

Timer → Database reader → Http client → ...

Viaducta documentation