比如我開(kāi)了一個(gè)wokrer,count為10
在每個(gè)進(jìn)程里需要使用AsyncTcpConnection連接外部的一個(gè)服務(wù)器獲取數(shù)據(jù)。也就是有10個(gè)進(jìn)程。每個(gè)進(jìn)程中都會(huì)分別new AsyncTcpConnection()
假設(shè)其中一個(gè)進(jìn)程和外部服務(wù)器通信超時(shí)了。那么會(huì)影響其他9個(gè)進(jìn)程的通信嗎?
不會(huì)
好的,謝謝。
另外還有個(gè)問(wèn)題,因?yàn)檫@個(gè)外部服務(wù)器不止我們?cè)谶B接,當(dāng)很多人使用時(shí),他在高并發(fā)期超時(shí)現(xiàn)象很?chē)?yán)重。
我這邊的處理是發(fā)送一條數(shù)據(jù),然后onmessage中等外部服務(wù)器的返回。當(dāng)他返回后 我再發(fā)送下一條數(shù)據(jù)。造成的情況就是有些來(lái)回可能需要1分鐘甚至更長(zhǎng)。
我想實(shí)現(xiàn)的是 當(dāng)一個(gè)來(lái)回超過(guò)比如10秒。那么我就等于這條數(shù)據(jù)就廢掉。我重新發(fā)送。我現(xiàn)在的處理方式是我在send中加了一個(gè)發(fā)送時(shí)間。在onmessage中加了一個(gè)接收時(shí)間。然后定時(shí)器跑 當(dāng)接收時(shí)間減去發(fā)送時(shí)間大于10秒。我就不等他返回然后直接發(fā)送下一條數(shù)據(jù)。但是非常容易造成緩沖區(qū)滿。有沒(méi)有什么更好的解決方法
緩沖區(qū)易滿是因?yàn)榉?wù)端處理能力差【根據(jù)你這描述服務(wù)器總是超時(shí)也能看出來(lái)】、接收數(shù)據(jù)的速度遠(yuǎn)小于發(fā)送數(shù)據(jù)的數(shù)據(jù)、如果不能左右服務(wù)端的處理能力、那就只能在本端控制數(shù)據(jù)的發(fā)送頻率,這個(gè)配合onBufferFull、onBufferDrain 回調(diào)使用即可。