【发布时间】:2020-06-11 13:01:51
【问题描述】:
我正在使用带有 spring cloud 功能的 spring cloud stream rabbit binder 并定义如下监听器:
public Function<Flux<SomeObject>, Flux<OtherObject>> foo() {
//some code
}
我还将失败的消息重新路由到 DLQ。问题是当像org.springframework.messaging.converter.MessageConversionException 这样的致命错误发生时。它不会像https://docs.spring.io/spring-amqp/reference/html/#exception-handling 中提到的那样被ConditionalRejectingErrorHandler 处理,并且永远循环。
有没有办法使用ConditionalRejectingErrorHandler 进行这项工作?
现在我通过使用@ServiceActivator(inputChannel = "errorChannel") 并自己处理错误来解决问题。
依赖关系:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot.experimental</groupId>
<artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
</dependencies>
【问题讨论】:
标签: java spring-boot spring-cloud-stream spring-rabbit spring-cloud-function