【发布时间】:2016-08-05 08:21:01
【问题描述】:
我正在使用
spring 4.2.4.RELEASE 和
spring-integration-java-dsl:1.1.2.RELEASE
我有Jms.inboundGateway 和一些变压器。当转换器失败转换消息时,入站网关一次又一次地重试。但是我想在出现异常时停止整个流程。
有可能吗?
这是我的流程配置:
@Bean
public IntegrationFlow nonStop {
return IntegrationFlows
.from(Jms.inboundGateway(emsConnectionFactory)
.destination(myDestination)
.configureListenerContainer(spec -> spec
.sessionTransacted(true)
.subscriptionDurable(true)
.durableSubscriptionName(durableSubscriptionName)
.errorHandler((ErrorHandler) t -> {
t.printStackTrace();
throw new RuntimeException(t);
}))
.errorChannel(errorChannel)
.autoStartup(true)
.id(myNonStoppableFlow))
.filter(...)
.transform(...)
.handle(Jms.outboundAdapter(emsConnectionFactory)
.destination(myOnotherDestination))
.get();
}
一个有趣的通知。当errorHandler 吞下异常时,入站网关立即退出。当它抛出运行时异常时,会有大约 5 秒的延迟(未在任何地方配置)。
【问题讨论】:
标签: spring-integration dsl spring-java-config