Pipeline events

Component: NServiceBus
NuGet Package NServiceBus (6.x)

The pipeline raises the following notification events:

Receive pipeline completed

Every time a receive pipeline is completed, a ReceivePipelineCompleted event will be raised. This event will not occur when message processing fails e.g. inside a handler.

Use the following configuration code to subscribe to this event:

endpointConfiguration.Pipeline.OnReceivePipelineCompleted(
    subscription: completed =>
    {
        var duration = completed.CompletedAt - completed.StartedAt;
        log.Info($"Reveive completed. Message: {completed.ProcessedMessage.MessageId}, duration: {duration}");
        return Task.CompletedTask;
    });

Subscribing from a feature is shown below:

var pipeline = context.Pipeline;
pipeline.OnReceivePipelineCompleted(
    subscription: completed =>
    {
        var duration = completed.CompletedAt - completed.StartedAt;
        log.Info($"Reveive completed: Message: {completed.ProcessedMessage.MessageId}, duration: {duration}");
        return Task.CompletedTask;
    });
A ReceivePipelineCompleted event being raised does not guarantee that the message has been removed from the incoming queue. Infrastructure exceptions can still cause the message to be rolled back and reprocessed.

Related Articles

  • Recoverability
    Explains how exceptions are handled, and actions retried, during message processing.

Last modified