我有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>
谢谢..
答案 0 :(得分:0)
要禁用特定流模块的重试,并始终拒绝DLQ,请使用部署属性。
deploy stream myStream --properties module.foo.consumer.maxAttempts=1,module.foo.consumer.requeue=false
您可以在servers.yml
中的总线级别设置相同的选项。