首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行shell脚本100次/秒

运行shell脚本100次/秒
EN

Stack Overflow用户
提问于 2020-04-07 09:05:58
回答 1查看 172关注 0票数 0

的最终目标:在MQTT上发布100条“心跳”消息/秒,使用Mosquitto作为代理。

要发送一个心跳,我可以轻松地做mosquitto_pub -t "ems/heartbeat" -m 0

我知道Unix系统中的watch实用程序,但速度还不够快。我解决这个问题的第一种方法是使用while sleep 0.01; do mosquitto_pub -t "ems/heartbeat" -m 0; done命令来扩展这个问题。通过订阅“ems/心搏”主题(mosquitto_sub -t "ems/heartbeat"),我确信发布到主题的消息比1秒内预期的100要少得多。下面是我的问题:如何运行一个shell脚本--心跳超过100次--每秒100次,或者更好的是,如何在某个MQTT主题上每秒发布100条消息?

与我的最终目标相比,这个标题可能有点误导,但是找到一种方法来运行shell脚本100次/秒应该可以做到这一点。如果有不同的方法来解决这个问题,他们当然是欢迎的!谢谢!

编辑&附加信息:是这些消息的接收方,它只是一个微控制器,需要检查与电子监控系统(笔记本电脑)的连接是否存在。需要100条消息/秒的事实是,微控制器为高速执行器提供控制,当发生连接丢失时,一切都需要处于安全状态。

基本假设是100条消息在1秒的时间范围内传播,并且来自一个实体,即EMS。

通过运行time命令,这是输出,因此不可能使用mosquitto_pub每秒发送100条消息,正如所指出的。

代码语言:javascript
复制
time mosquitto_pub -t "ems/heartbeat" -m 0

real    0m0.039s
user    0m0.006s
sys     0m0.011s
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-07 09:14:34

简单的回答是不要。

使用适当的负载生成工具,例如jmeter具有MQTT支持。

否则,使用适当的MQTT客户端库并连接一次,然后在循环中发布。这样,您就没有为每条消息设置和断开到代理的新连接的开销(这就是以这种方式驱动mosquitto_pub的原因)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61076424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档