RabbitConfig.java 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.uas.ps.message.rabbit;
  2. import org.springframework.amqp.core.*;
  3. import org.springframework.amqp.rabbit.core.RabbitTemplate;
  4. import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
  5. import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.Configuration;
  9. import javax.annotation.PostConstruct;
  10. import java.util.HashMap;
  11. import java.util.Map;
  12. /**
  13. * rabbit 配置
  14. * @author liuam
  15. * @since 2018/9/13 0013 下午 14:22
  16. */
  17. @Configuration
  18. public class RabbitConfig {
  19. @Autowired
  20. private AmqpAdmin amqpAdmin;
  21. @Autowired
  22. private InquiryMessageListener inquiryMessageListener;
  23. @PostConstruct
  24. public void init() {
  25. Map<String, Object> args = new HashMap<String, Object>();
  26. args.put("x-dead-letter-exchange", "");
  27. args.put("x-dead-letter-routing-key", RabbitConstants.DEAD_LETTER_ROUTING_KEY);
  28. amqpAdmin.declareQueue(new Queue(RabbitConstants.INQUIRY_MESSAGE + RabbitConstants.DELAY_QUEUE_NAME_SUFFIX, true, false, false, args));
  29. }
  30. @Bean
  31. public SimpleMessageListenerContainer messageListenerContainer(RabbitTemplate rabbitTemplate) {
  32. rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());
  33. SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(rabbitTemplate.getConnectionFactory());
  34. container.setQueues(new Queue(RabbitConstants.INQUIRY_MESSAGE));
  35. container.setExposeListenerChannel(true);
  36. container.setMaxConcurrentConsumers(RabbitConstants.MAXCONCURRENTCONSUMERS);
  37. container.setConcurrentConsumers(RabbitConstants.CONCURRENTCONSUMERS);
  38. //设置手动应答
  39. container.setAcknowledgeMode(AcknowledgeMode.MANUAL);
  40. container.setMessageListener(inquiryMessageListener);
  41. container.setPrefetchCount(RabbitConstants.PREFETCH_COUNT);
  42. return container;
  43. }
  44. }