gpt4 book ai didi

spring-boot - 使用 Spring Boot 和 Azure Service Bus Starter & Scheduled consumption 的多个队列

转载 作者:行者123 更新时间:2023-12-05 07:32:10 34 4
gpt4 key购买 nike

我指的是使用 Azure 服务总线的示例 https://github.com/Microsoft/azure-spring-boot/tree/master/azure-spring-boot-samples/azure-servicebus-spring-boot-sample

我能够毫无问题地运行示例。

1- 作为它的扩展,我现在在同一个服务总线命名空间中创建了多个队列。我想阅读消息并将其发布到每个队列。对于 azure-servicebus-spring-boot-starter 项目,我如何指定要使用的多个队列。

2- 我想每 10 秒听一次队列。对于 sprint 启动应用程序中的相同内容,我启用了调度。在每 10 秒安排一次的组件方法中,截至目前,我正在注册消息处理程序。

queueClient.registerMessageHandler(new MessageHandler(),options);

重复注册会不会有问题?如果是这样,如何对其进行编码。

谢谢

最佳答案

当你有多个队列时,你将无法使用自动配置属性来获取队列客户端,而是必须创建你的@Configuration 类,然后为每个队列名称创建一个客户端;例如,

@Bean
public QueueClient queueName1(@Value("connection-string") String connectionString, @Value("queueName1") String queueName) {
...
return new QueueClient(new ConnectionStringBuilder(connectionString, queueName),
ReceiveMode.PEEKLOCK);
...
}

@Bean
public QueueClient queueName2(@Value("connection-string") String connectionString, @Value("queueName2") String queueName) {
...
return new QueueClient(new ConnectionStringBuilder(connectionString, queueName),
ReceiveMode.PEEKLOCK);
...
}

然后在您的服务代码中,引用 with

   @Qualifier("queueName1") QueueClient queueClient1;
@Qualifier("queueName2") QueueClient queueClient2;

关于spring-boot - 使用 Spring Boot 和 Azure Service Bus Starter & Scheduled consumption 的多个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51449241/

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