我如何(在 C# 中)使用 Microsoft.Azure.ServiceBus 包(版本 3+)清除 Azure 服务总线的主题订阅?
我知道 SO问题。但是所选的答案似乎在 SubscriptionClient 上使用了 ReceiveBatch(),它似乎不再可用(?)。SubscriptionClient 现在似乎真的只有 RegisterMessageHandler() 来处理消息,但是使用这意味着我的客户永远不会知道订阅何时实际上是空的。
有没有一种干净的方法可以使用 C# 清除主题?
您可以MessageReceiver
以类似的方式使用类:
IMessageReceiver messageReceiver = new MessageReceiver(
namespaceConnectionString,
EntityNameHelper.FormatSubscriptionPath(topicName, subscriptionName),
ReceiveMode.ReceiveAndDelete);
int batchSize = 100;
var operationTimeout = TimeSpan.FromSeconds(3);
do
{
var messages = await messageReceiver.ReceiveAsync(batchSize, operationTimeout);
if (messages == null || messages.Count == 0) // Returns null if no message is found
{
break;
}
}
while (true);
请注意,现在只有异步 API 可用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句