【问题标题】:C# - How to enable FlowControl with RabbitMQC# - 如何使用 RabbitMQ 启用 FlowControl
【发布时间】:2012-07-25 12:27:29
【问题描述】:

有谁知道如何在 C# 中启用 RabbitMQ 流控制? 我尝试过这样的事情:

    channel = connection.CreateModel();
    channel.ChannelFlow(true);
    channel.FlowControl += new RabbitMQ.Client.Events.FlowControlEventHandler(channel_FlowControl);

基本上,我希望当 RabbitMQ 连接进入 FlowControl 模式时触发“channel_FlowControl”事件 - 但不知何故,这不会发生。

有人知道我该如何正确处理吗?

提前致谢

【问题讨论】:

  • sod 定律,FlowControl 事件是 undocumented,但文档确实将 Flow Control 作为一个主题。
  • 未记录,也许 - 但不知何故我想抓住那个事件,因为我的兔子有时会有点超载并进入 FlowControl 模式......并开始阻塞。
  • 没有人知道如何正确处理这个问题?

标签: c# rabbitmq flow


【解决方案1】:

好吧,经过一番讨论,真的!!!来自 RabbitMQ 的好人,答案很简单。

你不能

C# 驱动程序中没有可用的回调,因此推荐的方法是使用一个小的内部异步预队列并将你的东西放在那里,一个异步线程读取该队列并将其发布到 rabbit。

这样,当兔子放慢速度并且您也需要放慢输入时,您会注意到,因为内部队列在增长,您可以检测到这种增长并采取相应的行动。

再次感谢 RabbitMQ 邮件列表中的乐于助人的人们,即使这不是我想听到的那种回复 ;-)

【讨论】:

    猜你喜欢
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    相关资源
    最近更新 更多