spring - 如何使用“Mono”处理程序确认所有成功的消息?
问题描述
我正在使用spring amqp并且我使用异步返回类型,例如Mono
. 我的处理程序之一:
@RabbitHandler
public Mono<Response<PopularityReport>> popularityReport(PopularityReportCommand command) {
return Mono.just(foo);
}
当我使用这种方法时,我会收到下一个警告:
[ntContainer#0-1] .a.r.l.a.MessagingMessageListenerAdapter : Container AcknowledgeMode must be MANUAL for a Mono<?> return type; otherwise the container will ack the message immediately
我可以使用下一种方法进行手动确认。但是我有一百个处理程序,因此,这种方法看起来很不方便(我需要更改所有处理程序)。
我只想在成功执行后确认所有消息。我怎样才能在一个地方为我的所有处理程序编写一个全局策略而不更改旧代码?
解决方案
您不需要手动确认此类消息;完成后框架会处理它Mono
。
警告只是告诉您容器未正确配置此返回类型。
推荐阅读
- javascript - 基于到日期距离的字符串中的条件日期?
- ios - Apple 推送通知如何与 HTTP/2 一起使用
- lotusscript - 有没有办法验证 RTF 字段是否为空并采取行动?
- r - 如何在tidyverse中使用索引减去两个列
- go - 基于http中间件访问数据
- javascript - 理解帮助函数来存储动态状态的对象数据
- react-native - 不能在 useEffect 中使用 navigation.dispatch()
- python - ValueError:检查输入时出错:预期 conv2d_input 的形状为 (128, 128, 1) 但得到的数组的形状为 (128, 128, 3)
- hash - 您可以对 HMAC 进行哪些攻击以获取密钥?
- javascript - 更新按钮上的值:单击事件vue js