如何解决断开并连接mqtt客户端时的CPU使用率过多
当我的mqtt客户端处于错误状态时,我遇到了一个问题。
Paho Java MQTT库:1.2.4
https://www.eclipse.org/paho/index.php?page=clients/java/index.php
场景:
- 已连接到MQTT客户端(任何云,例如aws或azure)。
- 从MQTT代理接收到的数据并发送到云(大约每秒100个主题)。
- Mqtt客户端处于错误状态(原因是达到云配额,但它可以是重复的客户端ID等):
如果连接处于错误状态,我正在寻找一种控制CPU使用率的方法(我不想关闭连接,因为如果连接已关闭,那么除非手动干预,否则无法将其重新连接)。
以下是代码段:
//MQTT option
options.setCleanSession(false);
options.setAutomaticReconnect(true);
options.setConnectionTimeout(5);
options.setKeepAliveInterval(60);
options.setMaxInflight(32000);
//Connection
class CloudConnection {
...
Callback callback = new Callback(this);
...
client.setCallback(callback);
client.connect(options);
}
...
//Callback
public class Callback implements MqttCallbackExtended {
@Override
public void connectionLost(Throwable t) {
//Implemted logic for connection lost
}
@Override
public void deliveryComplete(IMqttDeliveryToken token) {
}
@Override
public void messageArrived(String topic,MqttMessage msg) {
}
@Override
public void connectComplete(boolean reconnect,String serverURI) {
String recconectInfo;
if(reconnect) {
recconectInfo = " reconnected successfully.";
} else {
recconectInfo = " connected successfully.";
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。