Spring XD - 处理器中的异常自动确认问题

时间:2015-11-25 16:04:50

标签: spring spring-integration spring-xd

我有Spring XD流,其中包含各种模块和启用了流的DLQ,我无法在流中根据需要删除http客户端重试方案。在其中一个处理器中,我抛出异常,并且希望不将此场景中的输出传递给流中的下一个处理器/模块,我可以使用Filter作为

来实现此目的
<filter throw-exception-on-rejection="true"  ref="batchDataFilter" method="transform"/>

在此我能够实现异常不传递到流中的下一个模块,但异常是在配置DLQ时进行重试,我想在异常/错误中确认此消息,因此它不应该重试并且我能够记录此消息。

以下是我的Spring文件配置

<chain input-channel="input" output-channel="output" >

<int:transformer>
  <beans:bean class="com.capitalone.batch.parser.BatchInputParser" >
    <beans:property name="batchInputProperties" ref="inputfields"/>
  </beans:bean>

</int:transformer>

             <filter throw-exception-on-rejection="true"  ref="batchDataFilter" method="transform"/>


</chain>

谢谢..

1 个答案:

答案 0 :(得分:0)

要禁用特定流模块的重试,并始终拒绝DLQ,请使用部署属性。

deploy stream myStream --properties module.foo.consumer.maxAttempts=1,module.foo.consumer.requeue=false

您可以在servers.yml中的总线级别设置相同的选项。