Задать вопрос
@0Bannon

Почему запрос через тест сервер Flask не блокируется, а с gunicorn — блокируется?

Простое тестовое приложение:
from flask import Flask
import time
import os
 
app = Flask(__name__)

@app.route("/")
def index():
     print(os.getpid())
     return "home page"
 
@app.route("/test")
def test_route():
     print(os.getpid())
     time.sleep(6)
     return "test page"
 
if __name__ == '__main__':
     app.run(debug=True)

При запуске со стандартный тестовым werkzeug сервером отправляю запрос "/test" чтобы "подвесить" запрос на некоторое время, затем сразу "/" запрос на домашнюю страницу. В итоге "/" запрос отрабатывает сразу же, асинхронно, хотя выдается один и тот же `pid` процесса.
Когда же запускаю с помощью gunicorn, например, с 1 воркером, то после "/test" запроса, запрос на "/" висит, и ждет, пока "/test" отработает.
Собственно, вопрос, почему в случае тестового сервера запросы сразу отрабатывают, а в случае с gunicorn и 1 воркером - один запрос блокирует второй? Это сам werkzeug сервер так устроен?
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Фаст Лейн
    Веб-разработка на Flask + AI-прототипирование
    1 неделя
    Далее
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

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