timer

← All adapters

timer(options?: TimerOptions): Source<undefined>

Trigger routes at regular intervals or specific times. Produces undefined as the message body.

// Simple interval (every second)
.id('ticker')
.from(timer({ intervalMs: 1000 }))

// Limited runs (10 times, then stop)
.id('batch-job')
.from(timer({ intervalMs: 5000, repeatCount: 10 }))

// Start with delay
.id('delayed-start')
.from(timer({ intervalMs: 1000, delayMs: 5000 }))

// Daily at specific time
.id('daily-report')
.from(timer({ exactTime: '09:30:00' }))

// Fixed rate (ignore execution time)
.id('heartbeat')
.from(timer({ intervalMs: 1000, fixedRate: true }))

// Add random jitter to prevent synchronized execution
.id('distributed-task')
.from(timer({ intervalMs: 1000, jitterMs: 200 }))

Options:

FieldTypeDefaultRequiredDescription
intervalMsnumber1000NoTime between executions in milliseconds
delayMsnumber0NoDelay before first execution in milliseconds
repeatCountnumberInfinityNoNumber of executions before stopping
fixedRatebooleanfalseNoExecute at exact intervals ignoring processing time
exactTimestring--NoExecute daily at time of day HH:mm:ss (fires once/day)
timePatternstring--NoCustom date format for execution times
jitterMsnumber0NoRandom jitter added to each scheduled run

Headers added: Timer metadata including fired time, counter, period, and next run time