当前位置:   article > 正文

Spring-Amqp MessageListener详解

messagelistener

在使用Spring集成RabbitMQ时,需要监听RabbiMQ消息。一般选择性实现下面俩接口:

MessageListener   只能获取到Message信息

ChannelAwareMessageListener  能获取到Message以及Channel信息

不同点在于channel可以手工确认消息以及拒绝

  1. public class TestMessageListener implements ChannelAwareMessageListener {
  2. private static final Logger logger = LoggerFactory.getLogger(TraceAnalyzeListener.class);
  3. @Autowired
  4. private TraceAnalyzeService traceAnalyzeService;
  5. @Autowired
  6. private ElasticOperationService elasticOperationService;
  7. @Autowired
  8. private RedisTemplate<String, String> redisTemplate;
  9. @Autowired
  10. private TraceMessageSender traceMessageSender;
  11. @Override
  12. public void onMessage(Message message, Channel channel) throws Exception {
  13. //消息的标识,false只确认当前一个消息收到,true确认所有consumer获得的消息
  14. //channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); //确认成功收到消息
  15. //ack返回false,并重新回到队列,api里面解释得很清楚
  16. //channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true);
  17. //拒绝消息
  18. //channel.basicReject(message.getMessageProperties().getDeliveryTag(), true);
  19. }
  20. }

 

转载于:https://my.oschina.net/woter/blog/1806673

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/994101
推荐阅读
相关标签
  

闽ICP备14008679号