有个关于进程数的问题我想请教下

eywork

比如我开了一个wokrer,count为10

在每个进程里需要使用AsyncTcpConnection连接外部的一个服务器获取数据。也就是有10个进程。每个进程中都会分别new AsyncTcpConnection()

假设其中一个进程和外部服务器通信超时了。那么会影响其他9个进程的通信吗?

1561 1 0
1个回答

phpcreeper

不会

  • eywork 2021-08-03

    好的,谢谢。
    另外还有个问题,因为这个外部服务器不止我们在连接,当很多人使用时,他在高并发期超时现象很严重。

    我这边的处理是发送一条数据,然后onmessage中等外部服务器的返回。当他返回后 我再发送下一条数据。造成的情况就是有些来回可能需要1分钟甚至更长。

    我想实现的是 当一个来回超过比如10秒。那么我就等于这条数据就废掉。我重新发送。我现在的处理方式是我在send中加了一个发送时间。在onmessage中加了一个接收时间。然后定时器跑 当接收时间减去发送时间大于10秒。我就不等他返回然后直接发送下一条数据。但是非常容易造成缓冲区满。有没有什么更好的解决方法

  • phpcreeper 2021-08-03

    缓冲区易满是因为服务端处理能力差【根据你这描述服务器总是超时也能看出来】、接收数据的速度远小于发送数据的数据、如果不能左右服务端的处理能力、那就只能在本端控制数据的发送频率,这个配合onBufferFull、onBufferDrain 回调使用即可。

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