你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
ServiceBusReceiver.DeferMessageAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指示接收方希望延迟消息的处理。
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
参数
- message
- ServiceBusReceivedMessage
- propertiesToModify
- IDictionary<String,Object>
延迟消息时要修改的消息的属性。
- cancellationToken
- CancellationToken
一个可选 CancellationToken 实例,用于向请求发出取消操作的信号。
返回
在操作完成时要解决的任务。
例外
- 消息的锁已过期或消息已完成。 这不适用于已启用会话的实体。 在这种情况下, Reason 将设置为 MessageLockLost 。
- 会话的锁已过期或消息已完成。 这仅适用于已启用会话的实体。 在这种情况下, Reason 将设置为 SessionLockLost 。
注解
为了在将来再次接收此消息,需要保存 SequenceNumber 并使用 接收它 ReceiveDeferredMessageAsync(Int64, CancellationToken)。 延迟消息不会影响消息的过期时间,这意味着延迟的消息仍可能过期。 此操作只能对此接收方收到的消息执行。