【发布时间】:2019-11-22 02:33:24
【问题描述】:
情况是, 我使用 PHP 脚本语言的 Mosquitto-alpha 创建了一个 mqtt 客户端。 所以我有一个订阅功能,可以无限运行,每分钟从设备获取数据 例如
在服务器内部我运行了这个 php /path/to/my/file/MyPHPscript 订阅 &
在客户端设备中,我每分钟运行 2 个服务以将数据发布到 mqtt 代理
e.g
* * * * * php /path/to/my/file/MyPHPScript publish dataA
* * * * * sleep 2; php /path/to/my/file/MyPHPScript publish dataB
如果我在运行第二个服务之前没有让第二个服务休眠 2 秒,那么这两个数据就不会在同一分钟内一起发布。然后,如果我在设备中添加一个订阅来捕获来自服务器的消息,它将通过两个 cron 服务提供 intrmittent 数据推送
e.g
* * * * * php /path/to/my/file/MyPHPScript publish dataA
* * * * * sleep 2; php /path/to/my/file/MyPHPScript publish dataB
我在单独的终端上运行了这个
php /path/to/my/file/MyPHPScript subscribe serverData &
上面这段代码干扰了其他两个cron服务的数据传输...有没有办法让这三个每分钟都工作而不冲突?
【问题讨论】:
-
编辑问题以显示实际代码。很可能您使用的是相同的客户端 ID,因此脚本的第二个实例在完成之前将第一个实例从代理中踢出。
-
是的,我已经在几个小时前修复了它。不过谢谢
-
然后回答您自己的问题或将其删除。