Azure-sdk-for-java: [Service Bus] : [BUG] : 删除订阅不同步

创建于 2021-01-11  ·  4评论  ·  资料来源: Azure/azure-sdk-for-java

描述错误
订阅的删除不是同步的。

异常或堆栈跟踪
无堆栈

再现
调用方法

  1. deleteSubscription(..., ...)
  2. getSubscription(..., ...)

订阅始终存在

代码片段

    public void deleteSubscription(String topicName, String subscriptionName) {
        asyncClient.deleteSubscription(topicName, subscriptionName);
    }

应该 :

    public void deleteSubscription(String topicName, String subscriptionName) {
        asyncClient.deleteSubscription(topicName, subscriptionName).block();
    }

预期行为
应立即删除订阅

截图

设置(请填写以下信息):

附加上下文
在此处添加有关该问题的任何其他上下文。

信息清单
请确保您已添加以上所有以下信息并勾选必填字段,否则我们会将发行人视为不完整的报告

  • [x] 添加了错误描述
  • [x] 添加了复制步骤
  • [x] 添加了设置信息
Client Service Bus customer-reported needs-author-feedback question

所有4条评论

您好@algra4 ,感谢您打开问题。 看起来您正在使用ServiceBusAdministrationAsyncClient 。 我们正在为异步客户端使用 Reactor 编程模型,您需要使用.block()subscribe()来执行调用。 你可以浏览这个博客,它更详细地解释了这一点https://devblogs.microsoft.com/azure-sdk/async-programming-with-project-reactor/#using -async-apis-in-the-new- azure-sdk-for-java

如果您喜欢使用同步客户端,以下是如何创建同步客户端的示例

// Create a administrator client using connection string.
        ServiceBusAdministrationClient client = new ServiceBusAdministrationClientBuilder()
            .connectionString(connectionString)
            .buildClient();

感谢您的回复@ hemanttanwar👍

但是,这是正常的,在ServiceBusAdministrationClient类,你可以调用的所有方法的.block()方法调用后asyncClient

期望在方法deleteSubscription(String topicName, String subscriptionName) (链接到方法) 中

为此,我认为这是一个“错误”😄

@algra4感谢您澄清信息。 你是对的 。 我们会尽快修复并在一周内发布。

此修复程序现已发布。 你可以从这里下载它https://search.maven.org/artifact/com.azure/azure-messaging-servicebus
现在关闭这个问题。

此页面是否有帮助?
0 / 5 - 0 等级