wokerman作为client端用ws方式接受数据,但是随着时间~接受的数据跟对方推送的数据时间差越来越大。

zhouaini528

我接受对方ws推送的数据,并发量非常大,每秒200条数据。我count只有一个, 现在是对方推送的数据时间和我接受的数据时间,会越来越大。

我是把数据存在global中,另一个进程来读数据的

1516 1 0
1个回答

keytehu

是不是有什么耗时操作比如存数据库啥的导致慢了。业务全部都去掉,只记录日志看下慢不慢。
按道理每秒接收200条不会慢,除非带宽不够,或者业务逻辑慢,也有可能对方发送越来越慢。

  • zhouaini528 2021-05-27

    我再onMessage把所有的业务代码注释了,获取对方推送过来的数据,时间是对的上的。 我怀疑是我用了GlobalData变量共享组件,我把数据存入global,然后另一个进程读取数据采用的是Timer轮询的方式读取,然后时间就对不上了。 但是为什么喃? 想不明白

  • zhouaini528 2021-05-27

    我测试了是GlobalData 赋值的时候, 阻塞了我onMessage,导致时间越来越差距远, 那么我如何解决啊?

  • keytehu 2021-06-18

    请求量大的话没必要每次都把数据存GlobalData。你可以用变量缓存一会儿,然后在合适的时机存进去,比如用定时器每秒保存一次啥的。

年代过于久远,无法发表回答
×
🔝