package com.yanzuoguang.mq.base; import com.yanzuoguang.mq.base.consumer.ConsumerSimpleMessageListenerContainer; import org.springframework.amqp.core.AcknowledgeMode; import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.core.ChannelAwareMessageListener; import org.springframework.amqp.rabbit.core.RabbitAdmin; import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.annotation.Resource; @Component public class MqConsumeDynamic { @Resource private ConnectionFactory connectionFactory; @Resource private RabbitAdmin rabbitAdmin; @Value("${yzg.onOfConsumer:10}") private int onOfConsumer; public SimpleMessageListenerContainer init(String queueName, ChannelAwareMessageListener messageListener) { ConsumerSimpleMessageListenerContainer container = new ConsumerSimpleMessageListenerContainer(); container.setConnectionFactory(connectionFactory); container.setAcknowledgeMode(AcknowledgeMode.MANUAL); container.setQueueNames(queueName); container.setConcurrentConsumers(onOfConsumer); container.setMessageListener(new MessageListenerAdapter(messageListener)); container.start(); return container; } }