Приложение использует сервер MinIO (хранилище объектов S3), на котором хранятся файлы JSON.
Эти файлы необходимо загрузить в память на карте< Формат String, Map> перед запуском приложения. На данный момент это реализовано с помощью аннотации @PostConstruct.
Теперь проект требует введения механизма обновления памяти. В дальнейшем приложение должно регулярно обновлять эти данные в памяти (например, каждые 5 минут), чтобы отражать:
Изменения, внесенные в существующие файлы.
Добавление новых файлов в корзину MinIO.
/>Обновление должно быть эффективным и не должно требовать перезапуска всего приложения Spring.
Я реализовал первоначальный механизм загрузки файлов с помощью аннотации @PostConstruct, которая успешно загружает файлы в память во время приложение Startup.
Что касается механизма обновления, моя первоначальная идея состояла в том, чтобы использовать аннотацию Spring @Scheduled для периодической проверки сегмента MinIO каждые 5 минут.
Задача будет:
- Обнаружение изменений в существующих файлах или определение новых файлов.
- Обновление карты в памяти Map с измененными или новыми данными.
[*]Эффективна ли моя идея использования @Scheduled для этого варианта использования?
[*]Существуют ли лучшие подходы к обнаружению изменения или добавления файлов в корзину MinIO без сканирования всех файлов через каждый интервал?
[*]Как я могу минимизировать потери производительности, гарантируя, что память всегда обновляется последними данными?
Подробнее здесь: https://stackoverflow.com/questions/793 ... pring-appl
Мобильная версия