我有时会遇到类似的写错误
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。基本上,正在发生的是,当尝试另一个阻止发送时,有一个活动的阻止发送消息。使用多个线程时通常会发生这种情况。