diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/config/TopicRabbitListenerConfig.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/config/TopicRabbitListenerConfig.java new file mode 100644 index 0000000..f27641e --- /dev/null +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/config/TopicRabbitListenerConfig.java @@ -0,0 +1,28 @@ +package com.qiuguo.iot.user.api.config; + +import org.springframework.amqp.rabbit.connection.ConnectionFactory; + +import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory; + + +/** + * @author simon + * @date 2023/9/26 + * @description + **/ +@Configuration +public class TopicRabbitListenerConfig { + @Bean + public SimpleRabbitListenerContainerFactory simpleRabbitListenerContainerFactory(ConnectionFactory connectionFactory) { + // 配置消息监听容器工厂 + SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); + factory.setConnectionFactory(connectionFactory); + factory.setConcurrentConsumers(3); // 并发消费者数量 + factory.setMaxConcurrentConsumers(10); // 最大并发消费者数量 + factory.setPrefetchCount(1); // 每个消费者的消息预取数量 + return factory; + } +} diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/listener/YunxiListener.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/listener/YunxiListener.java index ceb3c1b..2e1e508 100644 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/listener/YunxiListener.java +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/listener/YunxiListener.java @@ -18,7 +18,7 @@ import java.io.IOException; @Component @Slf4j public class YunxiListener { - @RabbitListener(queues = YunxiRabbitConst.QUEUE_YUNXI) + @RabbitListener(queues = YunxiRabbitConst.QUEUE_YUNXI, containerFactory = "simpleRabbitListenerContainerFactory") public void processYunxiQueue(Channel channel, Message message) throws IOException { String messageContent = new String(message.getBody(), "UTF-8"); System.out.println("YunxiListener msg " + messageContent);