从队列中读取来自 Azure 服务总线的所有消息
Reading all messages from azure service bus from queue
我想读取来自 Azure 服务总线(队列)的所有消息。
我已按照下面的说明进行操作 link
https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-php-how-to-use-queues
目前正在获取一条消息..
我想从服务总线(队列)中获取所有消息。
提前致谢..
我认为无法指定您希望从队列中读取的消息数(至少使用 PHP SDK,当然可以使用 .Net SDK)。本质上 receiveQueueMessage
是 Peek-Lock Message (Non-Destructive Read)
or Receive and Delete Message (Destructive Read)
(取决于配置)REST API 方法的包装器,并且它们 return 只有一条消息。
解决此问题的一种方法是 运行 您的代码处于循环状态,直到您没有从队列中收到任何返回的消息。您可能 运行 遇到的问题是您可能会收到重复的消息,因为一旦通过 peek-lock 方法获取的锁过期,该消息将再次可见。
使用服务总线的Peek
操作概念可以读取队列中的所有消息。
MessagingFactory messagingFactory = MessagingFactory.CreateFromConnectionString(<Your_Connection_String>);
var queueClient = messagingFactory.CreateQueueClient(<Your_Queue_Name>, ReceiveMode.PeekLock); // Receive mode is by default PeekLock and hence, optional.
BrokeredMessage message = null;
while(true)
{
message = queueClient.Peek(); // You have read one message
if (message == null) // Continue till you receive no message from the Queue
break;
}
这也可以是 return expired
或 locked
消息。如果这符合您阅读消息的要求,请快速阅读 Message browsing。
我想读取来自 Azure 服务总线(队列)的所有消息。
我已按照下面的说明进行操作 link https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-php-how-to-use-queues
目前正在获取一条消息..
我想从服务总线(队列)中获取所有消息。
提前致谢..
我认为无法指定您希望从队列中读取的消息数(至少使用 PHP SDK,当然可以使用 .Net SDK)。本质上 receiveQueueMessage
是 Peek-Lock Message (Non-Destructive Read)
or Receive and Delete Message (Destructive Read)
(取决于配置)REST API 方法的包装器,并且它们 return 只有一条消息。
解决此问题的一种方法是 运行 您的代码处于循环状态,直到您没有从队列中收到任何返回的消息。您可能 运行 遇到的问题是您可能会收到重复的消息,因为一旦通过 peek-lock 方法获取的锁过期,该消息将再次可见。
使用服务总线的Peek
操作概念可以读取队列中的所有消息。
MessagingFactory messagingFactory = MessagingFactory.CreateFromConnectionString(<Your_Connection_String>);
var queueClient = messagingFactory.CreateQueueClient(<Your_Queue_Name>, ReceiveMode.PeekLock); // Receive mode is by default PeekLock and hence, optional.
BrokeredMessage message = null;
while(true)
{
message = queueClient.Peek(); // You have read one message
if (message == null) // Continue till you receive no message from the Queue
break;
}
这也可以是 return expired
或 locked
消息。如果这符合您阅读消息的要求,请快速阅读 Message browsing。