需求:实时数据要立即发,部分数据按周期发,静态信息每天定时发,设备状态变化也要触发;

四种触发器,一条执行链

我没有为四种模式复制四套发送代码,而是把任务拆成两部分:

Task = What + Where
Trigger = When

Task 描述设备范围、点位映射、目标 Topic 和连接配置。Trigger 可以是 MQTT 实时事件、Ticker、Cron 或状态变化。触发后都进入同一条查询、转换、发送链路。

连接管理器

连接管理器承担了创建、复用和释放职责,key 由目标地址和身份共同决定。

QoS 不是可靠性的全部

告警事件要生成事件 ID 去重;普通设备数据则可以按设备和时间覆盖。

网络断开时,消息是否需要落盘?积压上限是多少?恢复后是否补发过期状态?这些都不是 MQTT 协议自动替业务决定的。