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

IQueueClient 接口

定义

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

public interface IQueueClient : Microsoft.Azure.ServiceBus.Core.IReceiverClient, Microsoft.Azure.ServiceBus.Core.ISenderClient
type IQueueClient = interface
    interface IReceiverClient
    interface IClientEntity
    interface ISenderClient
Public Interface IQueueClient
Implements IReceiverClient, ISenderClient
派生
实现

示例

创建新的 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;
       });

注解

IMessageSenderIMessageReceiver 用于高级功能集。

属性

ClientId

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

(继承自 IClientEntity)
IsClosedOrClosing

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

(继承自 IClientEntity)
OperationTimeout

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

(继承自 IClientEntity)
OwnsConnection

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

(继承自 IClientEntity)
Path

获取实体路径。

(继承自 IClientEntity)
PrefetchCount

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

(继承自 IReceiverClient)
QueueName

获取队列的名称。

ReceiveMode

ReceiveMode获取当前接收方的 。

(继承自 IReceiverClient)
RegisteredPlugins

获取此客户端当前注册的插件的列表。

(继承自 IClientEntity)
ServiceBusConnection

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

(继承自 IClientEntity)

方法

AbandonAsync(String, IDictionary<String,Object>)

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

(继承自 IReceiverClient)
CancelScheduledMessageAsync(Int64)

取消已计划的消息。

(继承自 ISenderClient)
CloseAsync()

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

(继承自 IClientEntity)
CompleteAsync(String)

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

(继承自 IReceiverClient)
DeadLetterAsync(String, IDictionary<String,Object>)

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

(继承自 IReceiverClient)
DeadLetterAsync(String, String, String)

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

(继承自 IReceiverClient)
RegisterMessageHandler(Func<Message,CancellationToken,Task>, Func<ExceptionReceivedEventArgs,Task>)

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

(继承自 IReceiverClient)
RegisterMessageHandler(Func<Message,CancellationToken,Task>, MessageHandlerOptions)

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

(继承自 IReceiverClient)
RegisterPlugin(ServiceBusPlugin)

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

(继承自 IClientEntity)
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)

计划消息显示在服务总线上。

(继承自 ISenderClient)
SendAsync(IList<Message>)

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

(继承自 ISenderClient)
SendAsync(Message)

向服务总线发送消息。

(继承自 ISenderClient)
UnregisterMessageHandlerAsync(TimeSpan)

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

(继承自 IReceiverClient)
UnregisterPlugin(String)

取消注册 ServiceBusPlugin

(继承自 IClientEntity)
UnregisterSessionHandlerAsync(TimeSpan)

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

适用于

另请参阅