如何增加NServiceBus 4.x TimeoutPersisterReceiver断路器

时间:2016-03-15 21:39:08

标签: nservicebus circuit-breaker

如何为NServicebus 4.x增加TimeoutPersisterReceiver的时间跨度?

我们如何从容器中获取TimeoutPersisterReceiver对象并修改SecondsToSleepBetweenPolls值?民意调查的数量是否有任何属性?

以下链接仅适用于5.x& 6.x不适用于4.xhttp://docs.particular.net/nservicebus/errors/critical-exception-for-timeout-outages

编辑:嗨Marcin, 谢谢。我查看了您提供的链接:How to configure TimeoutPersisterReceiver.SecondsToSleepBetweenPolls

NServicebus修复了5.x而不是4.x. @JustABitOfCode提到配置TimeoutPersisterReceiver。但我找不到任何关于如何从容器中获取该实例并设置它的链接。 另外我的问题是,是否有办法控制断路器的民意调查数量?

正如我所提到的,我暂时被4.x击中。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我假设您使用的是NServiceBus 4.x的最新次要版本(在撰写本文时为4.7.12)。

首先让我说明轮询超时存储的频率取决于您使用的持久性以及延迟消息的实际到期时间。 NServiceBus中没有单一设置可以控制每单位时间轮询次数的频率。

现在回到设置TimeoutPersisterReceiver.SecondsToSleepBetweenPolls属性,您可以在实现IWantToRunWhenBusStartsAndStops接口的类中执行此操作。您可以通过使用属性或构造函数注入来获取TimeoutPersisterReceiver

public class RunWhenBusStartsAndStops : IWantToRunWhenBusStartsAndStops
{
    public TimeoutPersisterReceiver Receiver { get; set; }

    public void Start()
    {
        Receiver.SecondsToSleepBetweenPolls = 15;
    }

    public void Stop()
    {
    }
}

依赖注入容器应该注意注入TimeoutPersisterReceiver的正确实例。