异步@RabbitListener返回类型

@RabbitListener(和@RabbitHandler)方法可以通过异步返回类型来指定CompletableFuture<?>单核细胞增多症<?>,允许异步发送回复。ListenableFuture<?>不再支持;它已被 Spring Framework 弃用。spring-doc.cadn.net.cn

监听器容器工厂必须配置为确认模式。手册因此,消费者线程不会满足该消息;异步补全会在异步作完成时 ack 或 nack 消息。 当异步结果以错误完成时,消息是否重新排队取决于抛出的异常类型、容器配置和容器错误处理程序。 默认情况下,消息会重新排队,除非容器的defaultRequeueRejected属性设置为false(确实如此true默认情况下)。 如果异步结果被满足于AmqpRejectAndDontRequeueException,消息不会被重新排队。 如果容器是defaultRequeueRejected财产是false你可以通过将未来的例外设置为 来覆盖它ImmediateRequeueException消息将重新排队。 如果监听器方法中出现异常导致异步结果对象的创建,你必须捕捉该异常并返回相应的返回对象,使消息被确认或重新排队。

从版本 2.2.21、2.3.13、2.4.1 开始,确认模式将自动设置手动当检测到异步返回类型时。 此外,包含致命例外的来信也会被单独负向确认,之前任何未确认的消息也会被否定确认。spring-doc.cadn.net.cn

从3.0.5版本开始,@RabbitListener(和@RabbitHandler)方法可以用 Kotlin 标记暂停整个处理过程和回复生成(可选)均在相应的Kotlin协程上完成。 所有提到的关于确认模式。手册我们仍然在申请。 这org.jetbrains.kotlinx:kotlinx-coroutines-reactor类路径中必须存在依赖,才能允许暂停功能调用。spring-doc.cadn.net.cn

从3.0.5版本开始,如果兔子听众错误处理者在带有异步返回类型(包括Kotlin挂起函数)的监听器上配置,错误处理程序在失败后被调用。 有关该错误处理程序及其用途的更多信息,请参见处理异常spring-doc.cadn.net.cn