描述错误
订阅的删除不是同步的。
异常或堆栈跟踪
无堆栈
再现
调用方法
deleteSubscription(..., ...)
getSubscription(..., ...)
订阅始终存在
代码片段
public void deleteSubscription(String topicName, String subscriptionName) {
asyncClient.deleteSubscription(topicName, subscriptionName);
}
应该 :
public void deleteSubscription(String topicName, String subscriptionName) {
asyncClient.deleteSubscription(topicName, subscriptionName).block();
}
预期行为
应立即删除订阅
截图
设置(请填写以下信息):
附加上下文
在此处添加有关该问题的任何其他上下文。
信息清单
请确保您已添加以上所有以下信息并勾选必填字段,否则我们会将发行人视为不完整的报告
您好@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 。
现在关闭这个问题。