Rabbitmq如何设置手动确认呢?

书欣 rabbitmq 发布时间:2022-09-06 15:47:25 阅读数:11593 1
下文笔者讲述Rabbitmq设置手动确认的方法分享,如下所示

使用配置的方式

当代码中没有创建其他监听容器
  可直接在配置文件中配置
    spring.rabbitmq.listener.simple.acknowledge-mode=manual
然后在容器中将所以要声明的监听队列
 每个都在用@Configuration注解的类中
  用@Bean注解
最后在@RabbitListener注解方法中
使用channel.basicAck(msg.getMessageProperties().getDeliveryTag(), false);手动确认消息;

采用此种声明队列,就会被设置为 手动确认状态
例:
@RabbitListener(queues = "test")
public void receive(String info, Channel channel, Message msg) {
try {
	logger.debug("consumer收到消息:" + msg);
	// 手动确认,只确认当条消息
	channel.basicAck(msg.getMessageProperties().getDeliveryTag(), false);
}catch (Exception e){
	logger.error(getStackTrace(e));
	e.printStackTrace();
}

}

使用代码中约定的配置

使用@Configuration注解的类中
引入RabbitProperties修改其中的容器的确认方式
其实这个就是上面配置文件修改的属性 
例:
@Autowired
RabbitProperties rabbitProperties;


@PostConstruct
public void set() {
	rabbitProperties.getListener().getSimple().setAcknowledgeMode(AcknowledgeMode.MANUAL);
}

@RabbitListener 注解的属性修改

注解中ackMode属性修改
从spring-rabbit-2.2-release.jar开始
这个修改会覆盖上面的大属性的修改
不过只适用于监听的某个队列
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/rabbitmq/2022/4351.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者