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



有没有办法在可恢复性执行的所有重试失败时向 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));
}
}
}

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

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

相关内容

最新更新