我有时会遇到类似的写错误

Error: Blocking message pending 10000 for BLOCKING


看起来是为了避免此类问题,我需要自己控制实际上要插入插座的内容。我当前的实现只是简单地推送所有接收到的数据,并且(看起来像)由于客户端队列变慢而变得超载。

那么问题是如何获取写入缓冲区中当前可用的消息量?
从哪里可以得到这个魔术数字10000?

最佳答案

该特定错误...

Error: Blocking message pending 10000 for BLOCKING


.. only happens if you have 2 threads attempting to use blocking send over the same connection

注意:该消息中的10000是阻止行为/状态掩码值,而不是消息计数或消息ID。

基本上,正在发生的是,当尝试另一个阻止发送时,有一个活动的阻止发送消息。使用多个线程时通常会发生这种情况。

07-24 12:56