Spring XD - проблема с автоматическим подтверждением для исключения в процессоре
У меня есть поток Spring XD, который содержит различные модули и DLQ для потока, который я не могу удалить из-за необходимости сценария повторной попытки http-клиента в потоке. В одном из процессоров я выбрасываю исключение и хочу не передавать выходные данные в этом сценарии следующему процессору / модулю в потоке, я могу добиться этого с помощью Filter as
<filter throw-exception-on-rejection="true" ref="batchDataFilter" method="transform"/>
В этом случае я могу добиться исключения, не передавая следующему модулю в потоке, но исключение выполняет повторную попытку, поскольку настроен DLQ, я хочу подтвердить это сообщение в исключении / ошибке, поэтому оно не должно повторяться, и я могу записать это сообщение.
Ниже моя весенняя конфигурация файла
<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 ответ
Чтобы отключить повтор для определенного модуля потока и всегда отклонять DLQ, используйте свойства развертывания.
deploy stream myStream --properties module.foo.consumer.maxAttempts=1,module.foo.consumer.requeue=false
Вы можете установить те же параметры на уровне шины в servers.yml
,