stevenjin 2022-09-22 17:29 采纳率: 98.2%
浏览 27
已结题

求上位机界面更新方案

点击按钮,上位机即连续发送多条指令到下位机。每发一条指令,下位机执行成功后,数据库更新一条记录,最终界面更新。
但发送指令速度较快,数据库还未做更新,实际上接收到的已经是最后一条指令了

想到的解决方案:
1.将接收到的数据放到list中,接完再更新数据库,待测试
2.更新时开个task任务,有改善,但最多也只能更新到最后2条

  • 写回答

2条回答 默认 最新

  • wanghui0380 2022-09-22 17:48
    关注

    其实答案还是跟你上个问题一样的,虽然上个问题你忽略掉队列的回答

    但是回到这里,你依旧还是绕回队列了。

    这里呢我们还是在扩展一下,接收后直接放入队列,另外一个东西慢慢处理队列。当然为啥要扩展呢,因为我们怕意外重启和掉电。如果你要确保数据不丢失,直接放本机内存里还是不好防止意外。所以目前行内的处理是接收后不入库,转发给kafka或者mqtt broke。然后另外的程序在去订阅处理

    当然这个过程现在可以不用写代码,比如一个mqtt broke叫emqx,他有一个mysql插件。通过这个插件你只需简单配置一下就可以把你发的mqtt消息自动转发给mysql入库保存

    总之:目前行业方案是既然你觉得入库慢,那就别处理直接发给一些消息中间体,然后在让消息中间体代理转存

    至于UI更新,你别管数据库了。队列收到什么就是显示什么,入库过程是另外的处理过程,和显示无关。显示UI只是如实显示,入库那边mqtt broke不挂,kafaka不挂,rabiitmq不挂他自己会慢慢入库

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月1日
  • 已采纳回答 9月23日
  • 创建了问题 9月22日

悬赏问题

  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单