用途:在 iii 引擎中按时间周期执行函数,适合定时任务、周期性自动化等场景,类似 node-cron、APScheduler、crontab。
主要能力:cron 表达式采用 7 字段格式(秒 分 时 日 月 星期 年),解析器也接受 5 字段(无秒)和 6 字段(无年),但 7 字段为标准。iii-cron 负责计算表达式并按计划触发;每个 cron 触发器将一个表达式绑定到一个函数;多个计划重叠时各自独立触发。
使用方式:通过 registerFunction 定义处理函数,用 registerTrigger({ type: 'cron' }) 绑定表达式,配置形如 config: { expression: '0 0 9 * * * *' }。常见模式包括 registerWorker(url, { workerName }) 初始化 worker、registerFunction(id, handler) 定义处理器、registerTrigger 绑定计划,以及用 trigger({ function_id, payload, action: TriggerAction.Enqueue({ queue }) }) 将重活入队。参考实现见 references/cron-scheduling.js,另有 Python 与 Rust 版本。需在 iii-config.yaml 中启用 iii-cron。
适用场景:时间驱动的周期执行。若是一次性异步任务,宜用 iii-queue-processing;若由状态变化触发,宜用 iii-state-reactions。
限制:处理器应保持轻量,重活应入队而非阻塞 cron 处理器;需要状态(如上次运行时间)时可结合 iii-state-management;应用示例前须先确认环境与安全约束。