定时规则触发
Simple IoT 规则引擎支持定时触发节点,通过 cron 表达式定期执行规则链。
节点类型
INPUT_SCHEDULE - 定时触发输入节点,属于 INPUT 类别。
配置参数
| 参数 | 说明 | 示例 |
|---|---|---|
cron | 6 位 cron 表达式(秒 分 时 日 月 周) | 0 0 23 * * ?(每晚 23:00) |
deviceKey | 触发时使用的设备 Key(可选) | gateway-001 |
timezone | 时区,默认系统时区 | Asia/Shanghai |
Cron 表达式
Simple IoT 使用 Spring 的 6 位 cron 表达式(含秒位):
秒 分 时 日 月 周
0 0 23 * * ? 每天 23:00
0 */30 * * * ? 每 30 分钟
0 0 9 ? * MON 每周一 9:00注意:日和周不能同时为
*,其中一个必须为?。
工作原理
- 应用启动时,
ScheduleTriggerService扫描所有启用的规则链 - 找到包含
INPUT_SCHEDULE节点的规则链,读取 cron 表达式 - 使用
ScheduledExecutorService注册定时任务 - 到达触发时间时,构造虚拟
RuleContext并调用RuleChainEngine.execute() - 规则链 CRUD 时自动重新注册定时任务
前端配置
- 进入「规则引擎」→ 编辑或创建规则链
- 从左侧节点面板拖入「定时触发」节点
- 点击节点,在右侧配置面板填写 cron 表达式
- 保存规则链后,定时任务立即生效
典型场景
- 每晚巡检:
0 0 23 * * ?- 每天 23:00 检查离线设备 - 定时统计:
0 0 */1 * * ?- 每小时统计设备在线率 - 工作日报:
0 0 18 ? * FRI- 每周五 18:00 生成周报