Создание ежедневного статистического отчета по интеграции Spring - PullRequest
0 голосов
/ 16 ноября 2018

Имеет приложение для интеграции пружин, в котором файлы направляются из папки в сегменты 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 Ответ

0 голосов
/ 16 ноября 2018

Вы можете запросить и сбросить MessageChannelMetrics непосредственно на каналах сообщений напрямую.

getSendCount();
reset();

Все стандартные каналы сообщений реализуют этот интерфейс, поэтому просто введите канал как этот ...

@Autowired
private MessageChannelMetrics filesOutS3GateWay;

private int getCount() {
    return this.filesOutS3GateWay.getSendCount();
}
...