据我了解,ReBus消费者在数据库中以两种模式查询消息。如果消息存在则快速,如果一段时间内没有消息则速度较慢。
有没有办法对此进行调整,是否有某些地方可以更详细地说明它是如何运作的。
我唯一能找到的就是这个 - "增加了将队列轮询退避策略配置为低延迟模式的能力 - 感谢hagbarddenstore。"
谢谢!
答案 0 :(得分:2)
在较新版本的Rebus中:
Configure.With(...)
.(...)
.Options(o=> o.SetBackoffTimes())
.(...)
答案 1 :(得分:1)
正如您所观察到的那样,Rebus在没有闲置时间后退出,以免在排队系统上施加太多不必要的负担。
退避策略是可配置的,所以你可以这样做(在Rebus版本中< = 0.84.0)
Configure.With(...)
.(...)
.Behavior(b => b. SetLowLatencyBackoffBehavior())
.(...)
为了切换到"低延迟模式"。
编辑:正如@ neo112正确指出的那样,较新版本的Rebus(> = 0.90.0)使用此API来修改退避时间:
Configure.With(...)
.(...)
.Options(o=> o.SetBackoffTimes(...))
.(...)
如果您有兴趣,可以在RebusConfigurer.cs where DefaultBackoffStrategy
is registered中看到用于默认退避行为的时间跨度。