webman里面使用了mqttClient插件,在自定義進程里面做了mqtt的訂閱接收,自定義進程數(shù)量設置到2個以上的時候,同一個主題會收到多個相同的數(shù)據(jù),這個情況怎么處理呢?mqtt服務器是EMQX。
要么用分布式鎖 誰先搶到誰執(zhí)行 要么 直接訂閱子topic
mqtt 機制就是廣播吧。 如果只想要一次通知,只讓一個進程訂閱這個消息就好了。 比如A進程訂閱A主題,B進程訂閱B主題。進程id可以用$worker->id來獲取,用來區(qū)分當前是哪個進程。
我們的設備ID都是純數(shù)字的,之前嘗試過采用“設備ID % 2 == $woker->id” 的方式來處理。