RabbitMQConfig.java 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package cn.cslg.pas.common.config;
  2. import org.springframework.amqp.core.*;
  3. import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
  4. import org.springframework.amqp.rabbit.connection.CorrelationData;
  5. import org.springframework.amqp.rabbit.core.RabbitTemplate;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.beans.factory.annotation.Value;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.stereotype.Component;
  10. @Component
  11. public class RabbitMQConfig {
  12. // private static final Logger LOGGER= LoggerFactory.getLogger(RabbitMQConfig.class);
  13. @Value("${queueName}")
  14. private String queueName;
  15. @Autowired
  16. private CachingConnectionFactory cachingConnectionFactory;
  17. // @Autowired
  18. // private IMailLogService mailLogService;
  19. @Bean
  20. public RabbitTemplate rabbitTemplate() {
  21. RabbitTemplate rabbitTemplate = new RabbitTemplate(cachingConnectionFactory);
  22. rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
  23. /**
  24. * 消息确认回调
  25. * @param data 消息唯一标识
  26. * @param ack 确认结果
  27. * @param cause 失败原因
  28. */
  29. @Override
  30. public void confirm(CorrelationData data, boolean ack, String cause) {
  31. String msgId = data.getId();
  32. if (ack) {
  33. // LOGGER.info("{}======>消息发送成功",msgId);
  34. // mailLogService.update(new UpdateWrapper<MailLog>()
  35. // .set("status",MailConstants.SUCCESS)
  36. // .eq("msgId",msgId));
  37. } else {
  38. // LOGGER.error("{}======>消息发送失败",msgId);
  39. }
  40. }
  41. });
  42. rabbitTemplate.setReturnsCallback(new RabbitTemplate.ReturnsCallback() {
  43. @Override
  44. public void returnedMessage(ReturnedMessage returnedMessage) {
  45. // LOGGER.error("{}======>消息发送queue时失败",message.getBody());
  46. }
  47. });
  48. return rabbitTemplate;
  49. }
  50. @Bean
  51. public Queue queue() {
  52. return new Queue(queueName);
  53. }
  54. @Bean
  55. public DirectExchange directExchange() {
  56. return new DirectExchange(MailConstants.MAIL_EXCHANGE_NAME);
  57. }
  58. @Bean
  59. public Binding binding() {
  60. return BindingBuilder.bind(queue()).to(directExchange()).with(MailConstants.MAIL_ROUTING_KEY_NAME);
  61. }
  62. }