如何在 C# (Microsoft.Azure.ServiceBus v3+) 中清除 Azure 服务总线主题订阅?
How to purge a Azure ServiceBus Topics Subscrption in C# (Microsoft.Azure.ServiceBus v3+)?
我如何(在 C# 中)使用 Microsoft.Azure.ServiceBus 包(版本 3+)清除 Azure 服务总线的主题订阅?
我知道 SO 。但是选择的答案似乎在 SubscriptionClient 上使用 ReceiveBatch() ,它似乎不再可用(?)。 SubscriptionClient 现在似乎只有 RegisterMessageHandler() 来处理消息,但是使用这意味着我的客户永远不知道订阅什么时候实际上是空的。
是否有使用 C# 清除主题的简洁方法?
您可以以类似的方式使用 MessageReceiver
class:
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 可用。
我如何(在 C# 中)使用 Microsoft.Azure.ServiceBus 包(版本 3+)清除 Azure 服务总线的主题订阅?
我知道 SO
是否有使用 C# 清除主题的简洁方法?
您可以以类似的方式使用 MessageReceiver
class:
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 可用。