OpenLiberty MP Config Образец getProperties() с повторным вызовом

Я попробовал пример OpenLiberty MP Config (guide-microprofile-config), пока он работает. Но при более тщательном анализе я обнаружил, что метод getProperties() в файле CustomConfigSource вызывается несколько раз подряд. Такое поведение я не ожидал. В файле InventoryConfig есть переменные, которые вводятся статически и динамически (с помощью "Provider<>"). Но этот код должен вызываться только когда я вызываю службу REST. Итак, мой вопрос, что вызывает getProperties() все время? Как я могу предотвратить это. На самом деле с моей реализацией я хочу получить доступ к базе данных и выполнить запрос, и я хотел поместить логику в getProperties(), что сейчас кажется плохой идеей.

с наилучшими пожеланиями Игорь

2 ответа

Решение

В OpenLiberty предоставляемые пользователем ConfigSources являются динамическими, поэтому система регулярно их перечитывает. Интервал обновления по умолчанию можно настроить, установив системное свойство с именем microprofile.config.refresh.rate, Значение в миллисекундах. Если вы установите его на ноль, то он вообще не будет обновляться. Для получения дополнительной информации см. Здесь (см. Раздел "Динамические значения свойств"):

https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/cwlp_microprofile_overview.html

Если вы хотите прокомментировать или внести свой вклад в будущие версии MicroProfile Config, присоединяйтесь к https://github.com/eclipse/microprofile-config/

Кстати, вышеописанное поведение - это деталь реализации Open Liberty. Текущая спецификация конфигурации MicroProfile не предусматривает способа работы с источниками динамической конфигурации. Предстоящий выпуск MicroProfile Config будет посвящен этой области.

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