通过服务总线资源管理器上的订阅者从存储 blob 上的主题读取消息 - C#
Reading Messages From Topic on storage blob through subscriber on Service Bus Explorer - C#
工作场景:
- Post 消息 1 到主题
- Post Msg2 to topic
- 阅读消息 1、消息 2
不工作:
- Post 消息 1 到主题
- 通过订阅者从主题中读取 Msg1,但我没有标记为完成。(仍在队列中)
- Post Msg2 to topic
读消息.. 实际:只读消息2 期望:想读消息1、消息2.
if (namespaceManager.TopicExists(topic))
{
var lstOfValues = new List<SITConfirmation>();
SubscriptionClient Client = SubscriptionClient.CreateFromConnectionString(ConfigurationManager.ConectionString(), topic, subscriber);
IEnumerable<BrokeredMessage> messages = await Client.ReceiveBatchAsync(10, TimeSpan.FromMilliseconds(500));
}
使用 ReceiveBatchAsync(messageCount)
时,您无法获得所请求的确切消息数。网关可以拥有所有消息,也可以不拥有。它会 return 它拥有的任何东西(网关可能有 less/more/same 实际存储在代理实体上的消息数量)。
As this is an approximation, fewer or more messages than messageCount may be returned.
工作场景:
- Post 消息 1 到主题
- Post Msg2 to topic
- 阅读消息 1、消息 2
不工作:
- Post 消息 1 到主题
- 通过订阅者从主题中读取 Msg1,但我没有标记为完成。(仍在队列中)
- Post Msg2 to topic
读消息.. 实际:只读消息2 期望:想读消息1、消息2.
if (namespaceManager.TopicExists(topic)) { var lstOfValues = new List<SITConfirmation>(); SubscriptionClient Client = SubscriptionClient.CreateFromConnectionString(ConfigurationManager.ConectionString(), topic, subscriber); IEnumerable<BrokeredMessage> messages = await Client.ReceiveBatchAsync(10, TimeSpan.FromMilliseconds(500)); }
使用 ReceiveBatchAsync(messageCount)
时,您无法获得所请求的确切消息数。网关可以拥有所有消息,也可以不拥有。它会 return 它拥有的任何东西(网关可能有 less/more/same 实际存储在代理实体上的消息数量)。
As this is an approximation, fewer or more messages than messageCount may be returned.