如何验证java中azure上是否存在队列?

问题描述 投票:1回答:1

我们有一个接收队列名称的服务,如果队列中存在推送数据的队列。我正在寻找一种方法来检查java中的azure队列是否存在。到目前为止,使用IQueueClient,我可以通过sendAsync发送数据时知道队列是否存在,并返回异常。我想知道客户端何时创建,甚至之前。

到目前为止我找到的最佳答案是使用NamespaceManager。以这种方式:

Uri uri = ServiceManagementHelper.GetServiceUri();
TokenProvider tokenProvider = ServiceManagementHelper.GetTokenProvider(uri);

NamespaceManager nm = new NamespaceManager(uri, tokenProvider);
if (!nm.QueueExists("TestQueue")) return;

资源:

http://www.cloudcasts.net/devguide/Default.aspx?id=12018 https://www.pmichaels.net/2017/06/11/reading-message-azure-service-bus-queue/

然而,这个类似乎不是azure-core或azure-servicebus librairy的一部分,我似乎可以找到添加到项目中的lib以访问这些类。

java azure service servicebus azure-queues
1个回答
1
投票

然而,这个类似乎不是azure-core或azure-servicebus librairy的一部分,我似乎可以找到添加到项目中的lib以访问这些类。

您提到的代码与.net SDK有关。对于Java sdk,我们可以使用以下代码检查队列是否存在。 ManagementClient似乎只在2.0.0-PREVIEW version有售。我们也可以从GitHub获取源代码。

String connectionString = "Endpoint=sb://xxxx.servicebus.windows.net/;SharedAccessKeyName=SharedAccessKeyName;SharedAccessKey=xxxxxxxx=";
ConnectionStringBuilder connectionStringBuilder = new ConnectionStringBuilder(connectionString);
ManagementClient client = new ManagementClient(connectionStringBuilder);
boolean isExist = client.queueExists("queueName");
System.out.println(isExist);

测试结果:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.