Pipeline events

Component: NServiceBus | Nuget: NServiceBus (Version: 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:

Edit
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:

Edit
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 exception are handled, and actions retries, during message processing.

Last modified