Использование vetx-config для асинхронной загрузки файла конфигурации - PullRequest
0 голосов
/ 19 марта 2020

Я пишу простую Vertx Verticle, которая загружает файл конфигурации в методе запуска:

public void start(Promise<Void> startPromise) {}

Я изначально использовал:

public void start( final Future<Void> startFuture )

Но этот метод устарел.

Я использую этот код:

ConfigStoreOptions store = new ConfigStoreOptions().setType("file").setFormat("yaml")
        .setConfig(new JsonObject().put("path", MICROSERVICE_CONFIG_FILE));

ConfigRetriever retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions().addStore(store));

retriever.getConfig(ar -> {
    if (ar.failed()) {
        // Failed to retrieve the configuration
        logger.error("Error retrieving service configuration");
    } else {
        config = ar.result();
        this.startService(startPromise);
    }
});

Затем в рамках метода "startService", который вызывается, я выполняю startPromise.

Каждые несколько секунд я вижу два создаются новые темы:

vert.x-internal-blocking
vert.x-worker-thread-N

Они не создаются, если я не загружаю файл конфигурации. Я неправильно понял, как загрузить файл конфигурации асинхронно с помощью vertx-config?

1 Ответ

1 голос
/ 21 марта 2020

Из документации ConfigurationRetriever:

Retriever конфигурации периодически извлекает конфигурацию, и, если результат отличается от текущего, ваше приложение может быть перенастроено. По умолчанию конфигурация перезагружается каждые 5 секунд.

https://vertx.io/docs/vertx-config/java/#_listening_for_configuration_changes

Это то, что вы видите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...