gpt4 book ai didi

c# - 如何清除服务总线主题订阅的消息

转载 作者:太空狗 更新时间:2023-10-30 00:48:23 24 4
gpt4 key购买 nike

只是想知道从服务总线主题的订阅中清除消息的最佳方法(即使通过 Portal、Powershell 或 C#)。

假设我们有一个包含 4 个订阅的主题,并且我们只想清除其中一个订阅中的消息。

我有一种感觉,唯一的方法可能是在 while 循环中阅读消息,但希望有更好的东西。

更新:

除了使用代码之外,您还可以按照答案中的建议使用服务器资源管理器 - 右键单击​​订阅并清除消息:

enter image description here

最佳答案

您当然可以通过代码来完成。如果您使用Service Bus SDK ,您可以执行如下操作:

    static void PurgeMessagesFromSubscription()
{
var connectionString = "Endpoint=sb://account-name.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=access key";
var topic = "topic-name";
var subscription = "subscription-name";
int batchSize = 100;
var subscriptionClient = SubscriptionClient.CreateFromConnectionString(connectionString, topic, subscription, ReceiveMode.ReceiveAndDelete);
do
{
var messages = subscriptionClient.ReceiveBatch(batchSize);
if (messages.Count() == 0)
{
break;
}
}
while (true);
}

此代码的作用是在接收和删除模式下从订阅中获取消息(一次 100 条),以便一旦获取消息,它们就会自动从订阅中删除。

我相信Service Bus Explorer该工具还具有清除消息的功能。您也可以使用它来代替编写代码。

关于c# - 如何清除服务总线主题订阅的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46922689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com