据我所知,ReBus消费者以两种模式轮询数据库中的消息。如果有消息,速度会变快;如果在一段时间内没有消息,速度则会变慢。
有没有办法调整这一点,有没有地方可以更详细地介绍它的工作原理。
我唯一能找到的是——"为低延迟模式添加了配置队列轮询回退策略的能力——感谢hagbardenstore。"
谢谢!
在更新版本的Rebus:中
Configure.With(...)
.(...)
.Options(o=> o.SetBackoffTimes())
.(...)
正如您所正确观察到的,Rebus在有一段时间不活动时会后退,以免给排队系统带来太多不必要的负载。
退避策略是可配置的,所以你可以这样做(在Rebus版本<=0.8.4)
Configure.With(...)
.(...)
.Behavior(b => b. SetLowLatencyBackoffBehavior())
.(...)
以便切换到"低延迟模式"。
编辑:正如@neo112正确指出的那样,更新版本的Rebus(>=0.90.0)使用此API修改退避时间:
Configure.With(...)
.(...)
.Options(o=> o.SetBackoffTimes(...))
.(...)
如果您感兴趣,可以在注册DefaultBackoffStrategy
的RebusConfigurer.cs中查看用于默认回退行为的时间跨度。