Open xiaobingzhou opened 3 years ago
您好,感谢反馈。1.0.0加了一个退避重连机制,这块后续会优化一版,待修改完后,麻烦帮忙看下是否能解决您的问题。
好的,感谢回复,再麻烦您帮忙看下这个问题
问题:手动调用关闭连接方法 com.huaweicloud.sdk.iot.device.client.DeviceClient#close
只是关闭了MQTT连接,
但是 com.huaweicloud.sdk.iot.device.client.DeviceClient#executorService
这个单线程池没有关闭(每次成功连接一个设备都会有一个单线程池被创建com.huaweicloud.sdk.iot.device.client.DeviceClient#connect
),有内存泄露的风险
建议:看下能不能提供一个setter方法 com.huaweicloud.sdk.iot.device.client.DeviceClient#setExecutorService
,让调用方手动设置一个线程池
Bug出现版本:1.0.0版本
Bug复现步骤
运行iot-device-demo中PropertySample类出现错误日志
connect failed 错误的用户名或密码 (4)
之后就无限重连了分析
在
0.8.0
版本没有这个bug,对比两个版本的com.huaweicloud.sdk.iot.device.client.DeviceClient#connect
方法在
0.8.0
版本还没有重连功能发现在
1.0.0
版本添加了重连功能while循环中的
MqttConnection.connect()
方法内部已将异常捕获,不会抛出,造成while死循环