一个生活在底层的小小码农 2020-06-02 16:43 采纳率: 100%
浏览 609
已采纳

Java做socket实时接收数据存入数据库不及时?

  • 应公司业务做了一个基于socket的实时接收数据的功能,就是我java后端写了一个服务端是基于UDP协议的,实时接收客服端发来的数据,对数据进行处理存入数据库。
  • 目前的客户端发来的数据比较快,一秒能有10个包发过来,每个包的数据也不大,挺小的,但就是我在处理这些数据的时候写的逻辑运算比较多,造成了目前存入数据库时不能达到所谓的实时更新的效果
  • 我说一下这个数据必须要在页面实时更新展示的
  • 补充一下:是开启多个客户端同时向服务端发送数据的,就比如目前有三个客户端对服务端同时发送数据(同一个端口),就会出现数据存入数据库不及时,但数据是已经接收到了(我在控制台打印看到了,只是没有及时存到数据库)
  • 如果只是一个客户端向数据库发送数据就可以达到理想化的实时存入数据库然后在页面实时展现数据,多个就不行了
  • 想问下各位大佬,是程序运行的太慢了,还是什么原因呢?我也做了开启多线程执行程序了啊
public String startDs() {
        DatagramSocket socket = null;
        try {
            socket = new DatagramSocket(8800);
        } catch (SocketException e) {
            e.printStackTrace();
        }
        //记录客户端的数量
        int count = 0;
        while (true) {
            data = new byte[16];// 创建字节数组,指定接收的数据包的大小
            packet = new DatagramPacket(data, data.length);
            try {
                socket.receive(packet);
            } catch (IOException e) {
                e.printStackTrace();
            } // 此方法在接收到数据报之前会一直阻塞
            Thread thread = new Thread(new UDPThread(socket, packet));
            thread.start();

        }
    }
  • 写回答

2条回答 默认 最新

  • bobo415 2020-06-02 17:04
    关注

    这种一般是你运算数据太耗时了,优化下你的逻辑跟算法(优先优化逻辑)

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

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题