Нить.сна в пружине контроллера
Я работаю над устаревшей системой, где они 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();
}
Тот, который я пытаюсь улучшить, основан на этом примере