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,

Другие вопросы по тегам