Я рассматриваю возможность написания веб-приложения с помощью Rails. Каждый запрос, сделанный пользователем, будет зависеть от вызова внешнего API. Этот внешний API может быть случайным образом очень медленным (2-3 секунды), и поэтому очевидно, что это повлияет на индивидуальный запрос.
В течение этого времени, когда код ожидает возврата внешнего API, будут ли блокироваться дальнейшие пользовательские запросы?
Просто для дальнейшего разъяснения, поскольку, похоже, есть некоторая путаница, это модель, которую я ожидаю:
- Алиса делает запрос к моему веб-приложению. Для этого выполняется вызов API-сервера A. Сервер API A работает медленно и занимает 3 секунды.
- В течение этого времени ожидания, когда приложение Rails вызывает сервер API A, Боб делает запрос, который должен сделать запрос серверу API.
Является ли интерпретатор Ruby (1.9.3) (или что-то в структуре Rails 3.x) блокировать запрос Боба, требуя от него ждать, пока запрос Алисы не будет выполнен?