【发布时间】:2019-07-09 11:12:46
【问题描述】:
我的应用程序有多个队列(队列名称将从数据库中获取),每个队列每天都会消耗大量数据。 为此,我需要为每个队列创建一个容器和消息侦听器,以便每个队列都有一个单独的线程。除此之外,可以动态创建一些队列,我需要为新创建的队列分配一个容器
我的 Consumer 课程开始如下所示
// 下面是我的课开始的方式
@Component
public class RequestConsumer implements MessageListener {```
//and below is the code by which I am creating Message listner
@Bean
@Scope(value = "prototype")
public SimpleMessageListenerContainer simpleMessageListenerNotification(
ConnectionFactory connectionFactory) {
SimpleMessageListenerContainer simpleMessageListenerContainer =
new SimpleMessageListenerContainer(connectionFactory);
RabbitAdmin rabbitAdmin = getRabbitAdmin(connectionFactory);
RequestConsumer RequestConsumer = (RequestConsumer) beanFactory.getBean("requestConsumer");
simpleMessageListenerContainer.setupMessageListener(RequestConsumer);
simpleMessageListenerContainer.setAutoDeclare(true);
for (String queueName : requestConsumerQueueList()) {
Queue queue = new Queue(queueName);
rabbitAdmin.declareQueue(queue);
simpleMessageListenerContainer.addQueues(queue);
}
simpleMessageListenerContainer.start();
return simpleMessageListenerContainer;
}
我当前的代码只为所有队列创建一个带有一个 messageListner 的容器,而我希望每个队列都有单独的容器。
【问题讨论】:
标签: concurrency rabbitmq spring-amqp spring-rabbit