Springboot 在mqtt的回调函数messageArrived方法里引用Dao层对数据库操作 就会触发我的connect'Lost掉线,为什么?
1条回答 默认 最新
- 憧憬blog 2023-03-15 05:53关注
这种情况可能是由于在messageArrived方法中的数据库操作导致了线程阻塞而触发了MQTT的连接丢失。MQTT客户端的connectLost方法会在客户端与服务器之间的连接丢失时调用,这通常是由于网络连接异常或服务器宕机等原因引起的。
为了避免这种情况,您可以在messageArrived方法中启用一个新线程来执行数据库操作,同时确保该线程及时释放数据库连接资源,以避免对连接池资源的浪费和线程的阻塞。另外,在MQTT连接中发生丢失时,您也可以通过重新连接的方式来重新建立连接并恢复数据传输。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?
- ¥15 c++头文件不能识别CDialog