Skip to content

定时规则触发

Simple IoT 规则引擎支持定时触发节点,通过 cron 表达式定期执行规则链。

节点类型

INPUT_SCHEDULE - 定时触发输入节点,属于 INPUT 类别。

配置参数

参数说明示例
cron6 位 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

注意:日和周不能同时为 *,其中一个必须为 ?

工作原理

  1. 应用启动时,ScheduleTriggerService 扫描所有启用的规则链
  2. 找到包含 INPUT_SCHEDULE 节点的规则链,读取 cron 表达式
  3. 使用 ScheduledExecutorService 注册定时任务
  4. 到达触发时间时,构造虚拟 RuleContext 并调用 RuleChainEngine.execute()
  5. 规则链 CRUD 时自动重新注册定时任务

前端配置

  1. 进入「规则引擎」→ 编辑或创建规则链
  2. 从左侧节点面板拖入「定时触发」节点
  3. 点击节点,在右侧配置面板填写 cron 表达式
  4. 保存规则链后,定时任务立即生效

典型场景

  • 每晚巡检0 0 23 * * ? - 每天 23:00 检查离线设备
  • 定时统计0 0 */1 * * ? - 每小时统计设备在线率
  • 工作日报0 0 18 ? * FRI - 每周五 18:00 生成周报

Released under the MIT License.