Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Samples

Pipeline events

Component: NServiceBus
NuGet Package: NServiceBus (8.1)

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 the event:

endpointConfiguration.Pipeline.OnReceivePipelineCompleted(
    subscription: (completed, ct) =>
    {
        var duration = completed.CompletedAt - completed.StartedAt;
        log.Info($"Receive 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, ct) =>
    {
        var duration = completed.CompletedAt - completed.StartedAt;
        log.Info($"Receive 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