延迟发布功能由 emqx_mod_delayed
内置模块提供,此功能默认开启,支持动态启停,先检查是否已经启用
########## 生产者发布的主题前添加相应的前缀,订阅者的主题名不变 ##########
延迟发布主题的具体格式如下:
$delayed/{DelayInterval}/{TopicName}
$delayed
: 使用$delay
作为主题前缀的消息都将被视为需要延迟发布的消息。延迟间隔由下一主题层级中的内容决定。{DelayInterval}
: 指定该 MQTT 消息延迟发布的时间间隔,单位是秒,允许的最大间隔是 4294967 秒。如果{DelayInterval}
无法被解析为一个整型数字,EMQ X 将丢弃该消息,客户端不会收到任何信息。{TopicName}
: MQTT 消息的主题名称。
例如:
$delayed/15/x/y
: 15 秒后将 MQTT 消息发布到主题x/y
。$delayed/60/a/b
: 1 分钟后将 MQTT 消息发布到a/b
。$delayed/3600/$SYS/topic
: 1 小时后将 MQTT 消息发布到$SYS/topic
案例如下:生产者发布主题 $delayed/10/tupian/1
订阅者订阅主题 tupian/#,订阅者会在10秒后接收到消息