我引用此示例用于使用Azure Service Bus 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秒安排一次的components方法中,我正在注册消息处理程序。
queueClient.registerMessageHandler(new MessageHandler(),options);
可以再次注册是否有问题?如果是这样,如何编写相同的代码。
谢谢
答案 0 :(得分:0)
当您有多个队列时,将无法使用自动配置属性来获取队列客户端,而必须创建@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);
...
}
,然后在您的服务代码中,使用
@Qualifier("queueName1") QueueClient queueClient1;
@Qualifier("queueName2") QueueClient queueClient2;