Skip to Content

Timer

Overview

The Timer operator can run on an interval at startup, or it can be triggered on receiving a message

Example where it is triggered from a message and then sends 5 messages to the next node:

- id: timer operator: Timer interval_ms: 500 iterations: 5 on_start: false

Example where it starts at startup and sends a message to the next node every 1s indefinitely.

- id: timer operator: Timer interval_ms: 1000 on_start: true

Examples

On startup

Send a message to the next node at startup and every 30s thereafter.

name: timer-start nodes: - id: start operator: Timer on_start: true interval_ms: 30000 - id: terminate operator: MessageTranslator mode: json template: | { "input": data } edges: - { from: start, to: terminate }

On message

When you make a call to /sse-timer it will return a response every 500ms for 5 iterations.

name: sse-timer nodes: - id: start operator: HTTPIn sse: true method: ^(GET)$ routes: - /sse-timer - id: timer operator: Timer interval_ms: 500 iterations: 5 on_start: false - id: translate operator: MessageTranslator mode: json template: | { "sse": "stuff", "data": data, "_ts": now() } edges: - { from: start, to: timer } - { from: timer, to: translate }

curl -v http://localhost:2243/sse-timer

Result:

data: {"_ts":"2025-09-16T02:22:09.818654+00:00","data":{"timer":"started"},"sse":"stuff"} data: {"_ts":"2025-09-16T02:22:10.319945+00:00","data":{"timer":"triggered"},"sse":"stuff"} data: {"_ts":"2025-09-16T02:22:10.821935+00:00","data":{"timer":"triggered"},"sse":"stuff"} data: {"_ts":"2025-09-16T02:22:11.323562+00:00","data":{"timer":"triggered"},"sse":"stuff"} data: {"_ts":"2025-09-16T02:22:11.825343+00:00","data":{"timer":"triggered"},"sse":"stuff"} data: {"_ts":"2025-09-16T02:22:12.326531+00:00","data":{"timer":"triggered"},"sse":"stuff"} data: {"_ts":"2025-09-16T02:22:12.326802+00:00","data":{"timer":"stopped"},"sse":"stuff"}

Configuration Reference

name

Must be 'Timer'

Stringrequired

on_start

Indicates whether this timer should start at startup or on receiving a message

BooleanrequiredDefault: "false"

interval_ms

If triggered by message, this is the interval in milliseconds for N iterations.

Numberrequired

iterations

If triggered by message, the number of messages sent to next node.

NumberrequiredDefault: "0"