NserviceBus忽略重试策略

NserviceBus忽略重试策略,nservicebus,Nservicebus,我有一个消息处理程序(实现IHandleMessages),它在Handle方法中执行一些操作 是否可以仅对某些类型的错误忽略重试策略并将事件定向到错误队列 这可以通过创建自定义重试策略来实现。发生错误时,您可以检查异常和消息信息 SecondLevelRetriesSettings retriesSettings = busConfiguration.SecondLevelRetries(); retriesSettings.CustomRetryPolicy(MyCustomRetryPol

我有一个消息处理程序(实现IHandleMessages),它在Handle方法中执行一些操作


是否可以仅对某些类型的错误忽略重试策略并将事件定向到错误队列

这可以通过创建自定义重试策略来实现。发生错误时,您可以检查异常和消息信息

SecondLevelRetriesSettings retriesSettings = busConfiguration.SecondLevelRetries();
retriesSettings.CustomRetryPolicy(MyCustomRetryPolicy);

TimeSpan MyCustomRetryPolicy(TransportMessage transportMessage)
{
    if (transportMessage.ExceptionType() == typeof(MyBusinessException).FullName)
    {
        // Do not retry for MyBusinessException
        return TimeSpan.MinValue;
    }

    if (transportMessage.NumberOfRetries() >= 3)
    {
        return TimeSpan.MinValue;
    }

    return TimeSpan.FromSeconds(5);
}
这适用于V5,如果您使用不同的版本,请检查文档:


您只希望在某些例外情况下使用此行为,而不希望在其他例外情况下使用此行为?清楚地说,您正在谈论覆盖默认的NServiceBus重试行为?看看这个: