ReBus Sql Server消费者轮询控制

时间:2014-11-02 08:24:32

标签: sql-server polling rebus

据我了解,ReBus消费者在数据库中以两种模式查询消息。如果消息存在则快速,如果一段时间内没有消息则速度较慢。

有没有办法对此进行调整,是否有某些地方可以更详细地说明它是如何运作的。

我唯一能找到的就是这个 - "增加了将队列轮询退避策略配置为低延迟模式的能力 - 感谢hagbarddenstore。"

谢谢!

2 个答案:

答案 0 :(得分:2)

在较新版本的Rebus中:

Configure.With(...)
    .(...)
    .Options(o=> o.SetBackoffTimes())
    .(...)

答案 1 :(得分:1)

正如您所观察到的那样,Rebus在没有闲置时间后退出,以免在排队系统上施加太多不必要的负担。

退避策略是可配置的,所以你可以这样做(在Rebus版本中< = 0.84.0)

Configure.With(...)
    .(...)
    .Behavior(b => b. SetLowLatencyBackoffBehavior())
    .(...)

为了切换到"低延迟模式"。

编辑:正如@ n​​eo112正确指出的那样,较新版本的Rebus(> = 0.90.0)使用此API来修改退避时间:

Configure.With(...)
    .(...)
    .Options(o=> o.SetBackoffTimes(...))
    .(...)

如果您有兴趣,可以在RebusConfigurer.cs where DefaultBackoffStrategy is registered中看到用于默认退避行为的时间跨度。