Springboot 在mqtt的回调函数messageArrived方法里引用Dao层对数据库操作 就会触发我的connect'Lost掉线,为什么?
1条回答
- 憧憬blog 2023-03-15 05:53关注
这种情况可能是由于在messageArrived方法中的数据库操作导致了线程阻塞而触发了MQTT的连接丢失。MQTT客户端的connectLost方法会在客户端与服务器之间的连接丢失时调用,这通常是由于网络连接异常或服务器宕机等原因引起的。
为了避免这种情况,您可以在messageArrived方法中启用一个新线程来执行数据库操作,同时确保该线程及时释放数据库连接资源,以避免对连接池资源的浪费和线程的阻塞。另外,在MQTT连接中发生丢失时,您也可以通过重新连接的方式来重新建立连接并恢复数据传输。
解决 无用评论 打赏 举报
悬赏问题
- ¥100 求数学坐标画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 自己瞎改改,结果现在又运行不了了
- ¥15 链式存储应该如何解决
- ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站