ProducerCallback.java 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package com.fdkankan.rabbitmq.callback;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.springframework.amqp.core.Message;
  4. import org.springframework.amqp.rabbit.connection.CorrelationData;
  5. import org.springframework.amqp.rabbit.core.RabbitTemplate;
  6. import org.springframework.stereotype.Component;
  7. /**
  8. * <p>
  9. * TODO
  10. * </p>
  11. *
  12. * @author dengsixing
  13. * @since 2022/4/19
  14. **/
  15. @Slf4j
  16. @Component
  17. public class ProducerCallback implements RabbitTemplate.ConfirmCallback,RabbitTemplate.ReturnCallback {
  18. //confirms模式:无论exchange投递消息是成功或是失败,都会返回ack,我们可以根据返回的ack是成功还是失败,做相应的业务处理
  19. @Override
  20. public void confirm(CorrelationData correlationData, boolean b, String s) {
  21. //投递成功
  22. if(b){
  23. log.info("消息投递成功,id:{}", correlationData.getId());
  24. return;
  25. }
  26. //投递失败
  27. log.error("消息投递失败,id:{}", correlationData.getId());
  28. }
  29. //return模式:只有exchange投递消息失败时,才会执行回调函数,来做一些相应的业务处理
  30. @Override
  31. public void returnedMessage(Message message, int i, String s, String s1, String s2) {
  32. }
  33. }