我根据API 3.2.9.0的例子SubscriptionWithEventHandlerExample
用c#写了一个程序。在为实时数据订阅了大约 500 种证券后,我收到了一些声称 SlowConsumerWarning
和 SlowConsumerWarningCleared
的管理事件警告。我在某处读到它引入了一些延迟,直到我处理所有事件。
问题是在我的代码中我只收到来自 bloomberg 的回调。事件队列甚至不在我的程序中!
我尝试过的一些事情:
提高队列限制,在session选项中设置MaxEventQueueSize(好像没有效果)
看看我是否收到任何超时事件(不,我没有收到任何超时事件)
创建多个 session 并在每个 session 中订阅 50 股证券(现在我收到多个警告,每个线程一个)
有什么我可以做的或者这种行为超出了我的范围吗?
最佳答案
您可以在专用线程中处理数据,只让 Bloomberg callbacks
对数据进行排队。您的数据处理线程将从队列中读取数据并执行任何耗时的工作。这可能会解决您的问题,具体取决于触发 SlowConsumerWarning
的原因。但是,如果您处理数据的代码太慢,您的队列会随着时间的推移而填满。
关于c# - Bloomberg APIv3 返回缓慢的消费者警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2602126/