@MOWS

Как работает контроллер при большом количестве запросов?

Допустим у меня есть метод в контроллере, внутри которого идёт сложная логика и скорость выполнения порядка 1-ной минуты. Мне интересно, что будет если такой долгий по времени запрос вызовут 100 пользователей одновременно? они все встанут в очередь и будут выполняется последовательно или будет несколько потоков. А если последовательно, то как можно в несколько потоков это сделать, чтобы быстрее было.
@RequestMapping(path = "/something", method = RequestMethod.GET)
@ResponseBody
public String calcSumm() {
    String summ = service.getCalcSumm(); //request too long
    return summ;
}
  • Вопрос задан
  • 1657 просмотров
Решения вопроса 1
EugeneP2
@EugeneP2
Java Dev
каждый запрос будет работать в отдельном потоке. В томкате например по умолчанию максимум 200 потоков, все остальные запросы будут вылетать по таймауту.

вот этот метод должен быть готов в многопоточности
service.getCalcSumm();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@MOWS Автор вопроса
Eugene, я правильно понимаю, что если у меня будет логика до этого метода, то её выполнять все потоки и будут дожидаться service.getCalcSumm();
@RequestMapping(path = "/something", method = RequestMethod.GET)
@ResponseBody
public String calcSumm() {
    countRequest++; 
    String summ1 = service.getCalcSumm1(countRequest);
    String summ2 = service.getCalcSumm2(countRequest);//countRequest может поменяться????
    return summ1 + summ2;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы