Как восстановить убитые API / рабочие места в Spring Boot - PullRequest
0 голосов
/ 08 января 2019

Я создал проект Java Spring Boot, который часто запрашивает системы мониторинга и собирает данные с помощью метода get, каждой группе серверов назначается уникальный ключ задания при запуске этого сбора данных. Предположим, кто-то убил jar, как мне восстановить сбор данных, который работал на этом jar

Я написал метод, который изящно закрывает банку, когда кто-то ее останавливает, но когда кто-то ее убивает, я не уверен, что она работает.

/**
 * Method to clean up all resources from quartz and pushgateway
 */
@Override
@PreDestroy
public boolean shutdownScheduler() {
    logger.info("Closing scheduler and removing data from pushgateway");
    GroupMatcher<JobKey> groupMatcher = GroupMatcher.jobGroupEquals(Constants.GROUP_KEY);
    try {
        Set<JobKey> jobKeys = schedulerFactoryBean.getScheduler().getJobKeys(groupMatcher);
        if (!CollectionUtils.isEmpty(jobKeys)) {
            for (JobKey jobKey : jobKeys) {
                deleteJobWithKey(jobKey);
            }
        }
    } catch (SchedulerException e) {
        logger.debug(e);
    }
    logger.info("Scheduler shutdown");
    return true;
}

Это работает, когда кто-то останавливает банку, но не когда я убиваю процесс java.

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