NServiceBus可恢复性失败时发送消息

时间:2018-08-24 14:21:34

标签: c# nservicebus

是否只有在仅当Recoverability执行的所有重试均失败时,才可以向NServiceBus发送消息?简而言之,我想将新消息发送到另一个队列(同时将其发送到错误队列)。我不确定是否可以插入管道或如何插入管道。

我有以下行为:当我抛出特定异常时,它将通过向NServiceBus发送事件(绕过重试)来处理该异常,但是我还有另一个用例,我想仅在重试失败后才发送相同的事件,因为好吧。

class OperationFailedExceptionBehavior : Behavior<IIncomingLogicalMessageContext>
{
    public override async Task Invoke(IIncomingLogicalMessageContext context, Func<Task> next)
    {
        try
        {
            await next().ConfigureAwait(false);
        }
        catch (OperationFailedException ex)
        {
            //since we're catching the exception, retries will no longer occur.
            await context.Publish(new OperationFailedEvent(ex));
        }
    }
}

1 个答案:

答案 0 :(得分:2)

可能是您正在寻找的通知。您可以订阅错误通知,我认为它将为您提供实现上述要求所需的所有详细信息。

有关更多详细信息:https://docs.particular.net/nservicebus/recoverability/subscribing-to-error-notifications