webman使用mqtt插件,在自定义进程订阅进程数量开了2个,会接收多个相同的订阅数据,怎么处理?

demo

问题描述

webman里面使用了mqttClient插件,在自定义进程里面做了mqtt的订阅接收,自定义进程数量设置到2个以上的时候,同一个主题会收到多个相同的数据,这个情况怎么处理呢?mqtt服务器是EMQX。

872 3 1
3个回答

PHP-美太鸡

要么用分布式锁 谁先抢到谁执行 要么 直接订阅子topic

  • 暂无评论
latin

mqtt 机制就是广播吧。
如果只想要一次通知,只让一个进程订阅这个消息就好了。
比如A进程订阅A主题,B进程订阅B主题。进程id可以用$worker->id来获取,用来区分当前是哪个进程。

  • 暂无评论
qiming

我们的设备ID都是纯数字的,之前尝试过采用“设备ID % 2 == $woker->id” 的方式来处理。

  • 暂无评论
年代过于久远,无法发表回答
🔝