Создание ежедневного статистического отчета по интеграции Spring
Иметь весеннее интеграционное приложение, в котором файлы маршрутизируются из папки в сегменты S3 с помощью адаптера s3-outbound-channel-adapter. Если файл успешно обработан, то файл будет перемещен в соответствующее целевое ведро. если есть ошибки, файл перемещается в корзину ошибок по каналу ошибок.
Необходимо создать ежедневный статистический отчет в текстовом файле, содержащем ниже детали.
Общее количество обработанных файлов: Общий успех: Общая ошибка:
Хотелось бы узнать, как не обрабатывать файлы успешно / ошибка. Есть ли способ достичь этого требования.
Любое предложение или пример будут полезны.
Прошли через DefaultMessageChannelMetrics и Micrometer Integration в документации. Не уверен, что это поможет моему требованию.
Отдельный шлюз и адаптер для обработки файлов об ошибках и ошибках.
Успех:
<int-aws:s3-outbound-gateway id="s3FileMover"
request-channel="filesOutS3GateWay"
reply-channel="filesOutS3ChainChannel"
transfer-manager="transferManager"
bucket-expression = "headers.TARGET_PATH"
key-expression="headers.file_name"
command="UPLOAD">
<int-aws:request-handler-advice-chain>
<ref bean="retryAdvice" />
</int-aws:request-handler-advice-chain>
</int-aws:s3-outbound-gateway>
Ошибка:
<int-aws:s3-outbound-channel-adapter id="filesErrorS3Mover"
channel="filesErrorS3MoverChannel"
transfer-manager="transferManager"
bucket="${aws.s3.error.bucket}"
key-expression="headers.TARGET + '/' + headers.file_name"
upload-metadata-provider = "fileMetaDataProvider"
command="UPLOAD">
<int-aws:request-handler-advice-chain>
<bean class="org.springframework.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice">
<property name="onSuccessExpressionString" value="payload.delete()"/>
</bean>
</int-aws:request-handler-advice-chain>
1 ответ
Вы можете запросить и сбросить MessageChannelMetrics
непосредственно на каналах сообщений напрямую.
getSendCount();
reset();
Все стандартные каналы сообщений реализуют этот интерфейс, поэтому просто введите канал как этот...
@Autowired
private MessageChannelMetrics filesOutS3GateWay;
private int getCount() {
return this.filesOutS3GateWay.getSendCount();
}