桥豆麻袋丶 2019-07-06 20:19 采纳率: 0%
浏览 563

Springboot MQTT messageArridve触发connectLost

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