Нить.сна в пружине контроллера - PullRequest
0 голосов
/ 21 сентября 2018

Я работаю над устаревшей системой, в которой в контроллере есть Thread.sleep.Сценарий здесь заключается в том, что, как только запрос получен, он опрашивает другую службу, пока не будут выполнены критерии.Проблема в том, что поток обработки запросов заблокирован из-за опроса

Я пытаюсь заменить его на DeferredResult, что позволяет избежать блокировки и использует метод на основе обратного вызова.Опрос будет проводиться в отдельном потоке, и после его завершения будет вызван setResult, и пользователю будет дан ответ.

Имеет ли смысл использовать DeferredResult для опроса с интервалом?Есть ли какое-либо влияние на производительность при нагрузке?

Это код:

    while (status.equals("RUNNING")) {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            log.error("Error while polling for status setting Thread to sleep.", e);
        }
        status = requestStatus();
    }

Тот, который я пытаюсь улучшить, основан на этом примере

...