|
对于最新稳定版本,请使用Spring AMQP 4.0.0! |
异步@RabbitListener返回类型
@RabbitListener(和@RabbitHandler)方法可以通过异步返回类型来指定CompletableFuture<?>和单核细胞增多症<?>,允许异步发送回复。ListenableFuture<?>不再支持;它已被 Spring Framework 弃用。
监听器容器工厂必须配置为确认模式。手册因此,消费者线程不会满足该消息;异步补全会在异步作完成时 ack 或 nack 消息。
当异步结果以错误完成时,消息是否重新排队取决于抛出的异常类型、容器配置和容器错误处理程序。
默认情况下,消息会重新排队,除非容器的defaultRequeueRejected属性设置为false(确实如此true默认情况下)。
如果异步结果被满足于AmqpRejectAndDontRequeueException,消息不会被重新排队。
如果容器是defaultRequeueRejected财产是false你可以通过将未来的例外设置为 来覆盖它ImmediateRequeueException消息将重新排队。
如果监听器方法中出现异常导致异步结果对象的创建,你必须捕捉该异常并返回相应的返回对象,使消息被确认或重新排队。 |
从版本 2.2.21、2.3.13、2.4.1 开始,确认模式将自动设置手动当检测到异步返回类型时。
此外,包含致命例外的来信也会被单独负向确认,之前任何未确认的消息也会被否定确认。
从3.0.5版本开始,@RabbitListener(和@RabbitHandler)方法可以用 Kotlin 标记暂停整个处理过程和回复生成(可选)均在相应的Kotlin协程上完成。
所有提到的关于确认模式。手册我们仍然在申请。
这org.jetbrains.kotlinx:kotlinx-coroutines-reactor类路径中必须存在依赖,才能允许暂停功能调用。
从3.0.5版本开始,如果兔子听众错误处理者在带有异步返回类型(包括Kotlin挂起函数)的监听器上配置,错误处理程序在失败后被调用。
有关该错误处理程序及其用途的更多信息,请参见处理异常。