你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

QueueClient 类

定义

QueueClient 可用于与服务总线队列的所有基本交互。

public class QueueClient : Microsoft.Azure.ServiceBus.ClientEntity, Microsoft.Azure.ServiceBus.IQueueClient
type QueueClient = class
    inherit ClientEntity
    interface IQueueClient
    interface IReceiverClient
    interface IClientEntity
    interface ISenderClient
Public Class QueueClient
Inherits ClientEntity
Implements IQueueClient
继承
QueueClient
实现

示例

创建新的 QueueClient

IQueueClient queueClient = new QueueClient(
    namespaceConnectionString,
    queueName,
    ReceiveMode.PeekLock,
    RetryExponential);

向队列发送消息:

byte[] data = GetData();
await queueClient.SendAsync(data);

注册消息处理程序,该处理程序将在每次收到消息时调用。

queueClient.RegisterMessageHandler(
       async (message, token) =>
       {
           // Process the message
           Console.WriteLine($"Received message: SequenceNumber:{message.SystemProperties.SequenceNumber} Body:{Encoding.UTF8.GetString(message.Body)}");

           // Complete the message so that it is not received again.
           // This can be done only if the queueClient is opened in ReceiveMode.PeekLock mode.
           await queueClient.CompleteAsync(message.SystemProperties.LockToken);
       },
       async (exceptionEvent) =>
       {
           // Process the exception
           Console.WriteLine("Exception = " + exceptionEvent.Exception);
           return Task.CompletedTask;
       });

注解

MessageSenderMessageReceiver 用于高级功能集。 它使用 AMQP 协议与服务总线通信。

构造函数

QueueClient(ServiceBusConnection, String, ReceiveMode, RetryPolicy)

在给定的 上创建队列客户端的新实例 ServiceBusConnection

QueueClient(ServiceBusConnectionStringBuilder, ReceiveMode, RetryPolicy)

实例化新的 QueueClient 以对队列执行操作。

QueueClient(String, String, ITokenProvider, TransportType, ReceiveMode, RetryPolicy)

使用指定的终结点、实体路径和令牌提供程序创建队列客户端的新实例。

QueueClient(String, String, ReceiveMode, RetryPolicy)

实例化新的 QueueClient 以对队列执行操作。

属性

ClientId

获取用于标识此客户端的 ID。 这可用于关联日志和异常。

(继承自 ClientEntity)
IsClosedOrClosing

如果客户端关闭或关闭,则返回 true。

(继承自 ClientEntity)
OperationTimeout

持续时间,之后单个操作将超时。

OwnsConnection

如果拥有连接,则返回 true;如果共享连接,则返回 false。

(继承自 ClientEntity)
Path

获取队列的名称。

PrefetchCount

在应用程序使用 Receive 请求消息时和之前,预提取旨在使消息随时可供本地检索,从而加快消息流的速度。 设置非零值预提取预提取消息数。 将值设置为零会关闭预提取。 默认值为 0。

QueueName

获取队列的名称。

ReceiveMode

获取 ReceiveMode QueueClient 的 。

RegisteredPlugins

获取此 QueueClient 当前注册的插件的列表。

RetryPolicy

获取客户端 RetryPolicy 上定义的 。

(继承自 ClientEntity)
ServiceBusConnection

服务总线命名空间的连接对象。

方法

AbandonAsync(String, IDictionary<String,Object>)

Message使用锁令牌放弃 。 这会使消息再次可供处理。

CancelScheduledMessageAsync(Int64)

取消已计划的消息。

CloseAsync()

关闭客户端。 关闭它打开的连接。

(继承自 ClientEntity)
CompleteAsync(String)

Message使用锁令牌完成 。 这会从队列中删除消息。

DeadLetterAsync(String, IDictionary<String,Object>)

将消息移动到死信子队列。

DeadLetterAsync(String, String, String)

将消息移动到死信子队列。

OnClosingAsync()

QueueClient 可用于与服务总线队列的所有基本交互。

RegisterMessageHandler(Func<Message,CancellationToken,Task>, Func<ExceptionReceivedEventArgs,Task>)

从实体连续接收消息。 注册消息处理程序并启动一个新线程来接收消息。 此处理程序 (Func<T1,T2,TResult> 接收方每次收到新消息时等待) 。

RegisterMessageHandler(Func<Message,CancellationToken,Task>, MessageHandlerOptions)

从实体连续接收消息。 注册消息处理程序并启动一个新线程来接收消息。 此处理程序 (Func<T1,T2,TResult> 接收方每次收到新消息时等待) 。

RegisterPlugin(ServiceBusPlugin)

ServiceBusPlugin注册要用于此队列客户端的 。

RegisterSessionHandler(Func<IMessageSession,Message,CancellationToken,Task>, Func<ExceptionReceivedEventArgs,Task>)

从队列中连续接收会话消息。 注册消息处理程序并启动新线程以接收会话消息。 此处理程序 (Func<T1,T2,T3,TResult> 队列客户端每次收到新消息时等待) 。

RegisterSessionHandler(Func<IMessageSession,Message,CancellationToken,Task>, SessionHandlerOptions)

从队列中连续接收会话消息。 注册消息处理程序并启动新线程以接收会话消息。 此处理程序 (Func<T1,T2,T3,TResult> 队列客户端每次收到新消息时等待) 。

ScheduleMessageAsync(Message, DateTimeOffset)

计划稍后在服务总线上显示一条消息。

SendAsync(IList<Message>)

将消息列表发送到服务总线。 当对分区实体调用时,用于不同分区的消息不能一起批处理。

SendAsync(Message)

向服务总线发送消息。

ThrowIfClosed()

如果对象为 Closing,则引发 OperationCanceledException。

(继承自 ClientEntity)
UnregisterMessageHandlerAsync(TimeSpan)

如果注册了活动消息处理程序,则从接收方取消注册消息处理程序。 此操作等待完成正在进行的接收和消息处理操作,并取消注册以前注册的消息处理程序上将来的接收。

UnregisterPlugin(String)

取消注册 ServiceBusPlugin

UnregisterSessionHandlerAsync(TimeSpan)

如果注册了活动会话处理程序,请从接收方注销会话处理程序。 此操作等待正在进行的接收和会话处理操作完成,并取消注册以前注册的会话处理程序上的未来接收。

适用于