Pipeline events

Component: NServiceBus
NuGet Package NServiceBus (7-pre)
This page targets a pre-release version and is subject to change prior to the final release.

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

Last modified