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