springboot--@RabbitListener消息确认修改为手动确认

springboot项目中,如果使用@RabbitListener注解,此时消息的ack默认为auto,即为自动确认,如果想要使用手动确认可以进行设置。containerFactory属性可以让我们自定义container的一些属性,当然消息的确认方式也可以在这里进行确认。代码如下:

containerFactory的自定义

@Bean
@ConditionalOnClass
public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(CachingConnectionFactory connectionFactory) {
    SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
    factory.setConnectionFactory(connectionFactory);
    factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);
    return factory;
}

在使用地方将上述bean引用

// 此处的containerFactory属性值就是上述定义的Bean的name
@RabbitListener(containerFactory = "rabbitListenerContainerFactory", bindings = @QueueBinding(value = @Queue(value = "month", durable = "false"),
        exchange = @Exchange(name = "fanout-exchange", durable = "false", type = "fanout")))
public void monthProcess(Channel channel, Message message){
}

然后,在代码里面进行自动确认,代码如下:(个人实验只要是有这行代码,不管是否是true还是false,都是确认,不加这段代码,消息还会一直存在于队列)

图片说明

图片说明
原文链接:https://blog.csdn.net/czw_xiaobei/article/details/103444344

全部评论

相关推荐

03-16 22:00
武汉大学 C++
幸福的小熊猫想要offer:我阿里投的 c++岗,面试官说自己是做 java 的,c++这辈子才有了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务