gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:02:41 26 4
gpt4 key购买 nike

我们有一个服务接收队列名称,如果队列存在,则将数据推送到队列上。我正在寻找一种方法来检查队列是否存在于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 库的一部分,我似乎可以找到将哪个库添加到项目中以访问这些类。

最佳答案

However this class seem not to be part of azure-core or azure-servicebus librairy and I can seem to find which lib to add to the project to have access to those class.

您提到的代码与.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

关于java - 如何验证java中的azure上是否存在队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52314023/

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