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: falseExample 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: trueExamples
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'
Stringrequiredon_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.
Numberrequirediterations
If triggered by message, the number of messages sent to next node.
NumberrequiredDefault: "0"