【问题标题】:How to increase NServiceBus 4.x TimeoutPersisterReceiver circuit breaker如何增加 NServiceBus 4.x TimeoutPersisterReceiver 断路器
【发布时间】:2016-03-21 03:37:20
【问题描述】:

如何增加 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 感到震惊。任何帮助将不胜感激。

【问题讨论】:

标签: nservicebus circuit-breaker


【解决方案1】:

我假设您使用的是 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的正确实例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2018-03-23
    相关资源
    最近更新 更多