Медленное получение данных из колбы - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть устройство, отправляющее сообщения POST на мой сервер.В Python я собираю опубликованные данные, используя:

request.data
request.get_data
request.get_json

Но время, которое я могу получить для этих простых данных, меняется.Я тестирую что-то вроде этого:

start = time.time()
resp = request.data
return str(time.time() - start)

На некоторых конечных узлах я вижу времена, составляющие 1 мс, а некоторые - более 100 мс для того же объема данных.Поскольку объект запроса уже создан, и я предполагаю, что данные уже получены, что способствует этой дисперсии в скорости?

1 Ответ

0 голосов
/ 14 сентября 2018

и я предполагаю, что данные уже получены

Не предполагайте:)

Flask использует класс запроса от Werkzeug , который вызывает get_data.get_data либо уже кэширует данные, либо читает поток .

В строке документации даже есть предупреждение:

Обычно это плохая идеяВызовите этот метод, не проверяя сначала длину содержимого, так как клиент может отправить десятки мегабайт или более, чтобы вызвать проблемы с памятью на сервере.

Если вы хотите быть в безопасности от блокировки вашего сервера по медленному запросу, перед ним должен быть установлен обратный прокси-сервер (nginx?), который может более эффективно обрабатывать ввод и передавать полный запрос на сервер, когда он будет готов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...