| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package com.uas.ps.message.rabbit;
- import org.springframework.amqp.core.*;
- import org.springframework.amqp.rabbit.core.RabbitTemplate;
- import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
- import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import javax.annotation.PostConstruct;
- import java.util.HashMap;
- import java.util.Map;
- /**
- * rabbit 配置
- * @author liuam
- * @since 2018/9/13 0013 下午 14:22
- */
- @Configuration
- public class RabbitConfig {
- @Autowired
- private AmqpAdmin amqpAdmin;
- @Autowired
- private InquiryMessageListener inquiryMessageListener;
- @PostConstruct
- public void init() {
- Map<String, Object> args = new HashMap<String, Object>();
- args.put("x-dead-letter-exchange", "");
- args.put("x-dead-letter-routing-key", RabbitConstants.DEAD_LETTER_ROUTING_KEY);
- amqpAdmin.declareQueue(new Queue(RabbitConstants.INQUIRY_MESSAGE + RabbitConstants.DELAY_QUEUE_NAME_SUFFIX, true, false, false, args));
- }
- @Bean
- public SimpleMessageListenerContainer messageListenerContainer(RabbitTemplate rabbitTemplate) {
- rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());
- SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(rabbitTemplate.getConnectionFactory());
- container.setQueues(new Queue(RabbitConstants.INQUIRY_MESSAGE));
- container.setExposeListenerChannel(true);
- container.setMaxConcurrentConsumers(RabbitConstants.MAXCONCURRENTCONSUMERS);
- container.setConcurrentConsumers(RabbitConstants.CONCURRENTCONSUMERS);
- //设置手动应答
- container.setAcknowledgeMode(AcknowledgeMode.MANUAL);
- container.setMessageListener(inquiryMessageListener);
- container.setPrefetchCount(RabbitConstants.PREFETCH_COUNT);
- return container;
- }
- }
|