作为大型应用程序的一部分,我正在侦听来自服务器的WebSocket消息;最小的代码示例是
myQueue= asyncio.Queue(maxsize=10000)
async with websockets.connect('wss://url') as websocket:
while True:
response = await websocket.recv()
await self.myQueue.put(response)
async def func():
while True:
msg = await self.myQueue.get()
do_stuff(msg)
但是,每隔几天,当收到的邮件数量激增(每秒10-20条)时,某些邮件就会丢失或以错误的顺序接收。然后程序将继续正常运行。我最近添加了异步队列,从而改善了这种情况(每隔几天而不是每隔几个小时发出一次)。
我的程序在接收/处理消息方面的延迟不会超过1秒,因此不是它无法跟上进度。我以为Websocket的顺序是可以保证的,那么出现短时丢失消息的可能原因是什么?