Registers cron triggers with 7-field expressions to run functions on recurring schedules. Use when scheduling periodic jobs, timed automation, crontab replacements, cleanup routines, report generation, health checks, batch processing, or any task that should run every N seconds, minutes, hours, or on a weekly/monthly calendar.
Comparable to: node-cron, APScheduler, crontab
Use the concepts below when they fit the task. Not every scheduled job needs all of them.
second minute hour day month weekday yeariii-cron timer tick
→ registerTrigger type:'cron' expression match
→ registerFunction handler
→ (optional) TriggerAction.Enqueue for heavy work
| Primitive | Purpose |
|---|---|
registerFunction | Define the handler for the scheduled job |
registerTrigger({ type: 'cron' }) | Bind a cron expression to a function |
config: { expression: '0 0 9 * * * *' } | Cron schedule in 7-field format |
See ../references/cron-scheduling.js for the full working example — a recurring scheduled task that fires on a cron expression and optionally enqueues heavy work.
Also available in Python: ../references/cron-scheduling.py
Also available in Rust: ../references/cron-scheduling.rs
Code using this pattern commonly includes, when relevant:
registerWorker(url, { workerName }) — worker initializationregisterFunction(id, handler) — define the scheduled handlerregisterTrigger({ type: 'cron', config: { expression } }) — bind the scheduletrigger({ function_id, payload, action: TriggerAction.Enqueue({ queue }) }) — offload heavy workconst logger = new Logger() — structured logging per jobUse the adaptations below when they apply to the task.
0 0 */6 * * * * for every 6 hours)iii-state-managementiii-cron must be enabled in iii-config.yaml. See ../references/iii-config.yaml for the full annotated config reference.
iii-queue-processing.iii-state-reactions.iii-cron-scheduling when the primary need is time-based periodic execution.iii-cron-scheduling in the iii engine.