根据BackoffBehavior中的时间跨度,Rebus默认情况下会逐渐退出轮询队列 - 如您所见,如果闲置足够长时间,它将每5秒轮询一次队列。
您可以通过在配置法术会
Configure.With(...)
.(...)
.Behavior(b => b. SetLowLatencyBackoffBehavior())
.(...)
更改为低延迟退避策略。
更新:在100毫秒和200毫秒的间隔这种情况下轮询
Configure.With(...)
.(...)
.Options(o => {
o.SetBackoffTimes(
TimeSpan.FromMilliseconds(100),
TimeSpan.FromMilliseconds(200),
TimeSpan.FromSeconds(1)
);
})
:在Rebus的更新版本(即版本> = 2)的退避时间可定制这样持续空闲的前两秒钟,然后在剩下的时间以1秒为间隔。
如果这个级别的定制不够用,ISyncBackoffStrategy
可以在上面的.Options
配置器中执行o.Register<ISyncBackoffStrategy>(c => new YourOwn SyncBackoffStrategy())
来实现和使用。