我有时会遇到像
这样的写错误Error: Blocking message pending 10000 for BLOCKING
看起来要避免这样的问题我需要控制自己实际推入socket的内容。我当前的实现只是推送收到的所有数据和(看起来像)因为客户端队列缓慢变得过满。
所以问题是如何获得写缓冲区中当前可用的消息数量? 从哪里可以得到这个神奇的数字10000?
答案 0 :(得分:2)
那个具体错误......
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。
基本上,正在发生的事情是,当尝试另一个阻止发送时,存在活动的阻止发送消息。这通常在使用多个线程时发生。