ProcessMessageEventArgs.DeferMessageAsync Method

Definition

Indicates that the receiver wants to defer the processing for the message.

public virtual System.Threading.Tasks.Task DeferMessageAsync (Azure.Messaging.ServiceBus.ServiceBusReceivedMessage message, System.Collections.Generic.IDictionary<string,object> propertiesToModify = default, System.Threading.CancellationToken cancellationToken = default);
abstract member DeferMessageAsync : Azure.Messaging.ServiceBus.ServiceBusReceivedMessage * System.Collections.Generic.IDictionary<string, obj> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
override this.DeferMessageAsync : Azure.Messaging.ServiceBus.ServiceBusReceivedMessage * System.Collections.Generic.IDictionary<string, obj> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Overridable Function DeferMessageAsync (message As ServiceBusReceivedMessage, Optional propertiesToModify As IDictionary(Of String, Object) = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task

Parameters

propertiesToModify
IDictionary<String,Object>

The properties of the message to modify while deferring the message.

cancellationToken
CancellationToken

An optional CancellationToken instance to signal the request to cancel the operation.

Returns

A task to be resolved on when the operation has completed.

Exceptions

  • The lock for the message has expired or the message has already been completed. This does not apply for session-enabled entities. The Reason will be set to MessageLockLost in this case.
  • The lock for the session has expired or the message has already been completed. This only applies for session-enabled entities. The Reason will be set to SessionLockLost in this case.

Remarks

In order to receive this message again in the future, you will need to save the SequenceNumber and receive it using ReceiveDeferredMessageAsync(Int64, CancellationToken). Deferring messages does not impact message's expiration, meaning that deferred messages can still expire. This operation can only be performed on messages that were received by this receiver.

Applies to