Я устанавливаю тайм-аут на 300 секунд (чтобы протестировать лямбда-функцию AWS + API-шлюз), но HTTPie продолжает тайм-аут 30 секунд. Установлен ли верхний предел в 30 секунд? Я использую
http --timeout=300 POST https://...
30 - установленный тайм-аут по умолчанию, а не верхний предел.
По какой-то причине httpie
не использует указанное мной время ожидания и истекает через 30 секунд ...
$ http --timeout=300 POST https://...
HTTP/1.1 504 Gateway Timeout
Connection: keep-alive
Content-Length: 41
Content-Type: application/json
Date: ...
{
"message": "Endpoint request timed out"
}
Я пробовал это с --timeout=300
и --timeout 300
(что не должно иметь никакого значения, но я хотел убедиться), и результаты такие же: время ожидания истекает через 30 секунд. Вызов функции должен занять около 2 минут (120 секунд), но никогда не превышает 30 секунд.
Это не тайм-аут httpie
. Вы получаете ответ, в котором говорится, что посредник между вами и вашей лямбда-функцией задерживает запрос. --timeout
отправляется с вашего компьютера этому посреднику. Посредник может установить любой тайм-аут, который он хочет от себя для вашей лямбда-функции. Это определенно не ошибка HTTPie.
На самом деле это проблема с httpie. Мой тайм-аут Gunicorn составляет 90 секунд, а httpie все еще останавливается на 30 секундах ... Я знаю, что время ожидания Gunicorn не истекает, потому что через несколько секунд после смерти httpie я вижу результаты вывода сервера в журнале.
@gnulnx по умолчанию установлен 30-секундный тайм-аут _connection_, который вы можете изменить с помощью --timeout=n
.
(Тайм-аут по умолчанию будет удален в версии 2.0.0.)
Самый полезный комментарий
Это не тайм-аут
httpie
. Вы получаете ответ, в котором говорится, что посредник между вами и вашей лямбда-функцией задерживает запрос.--timeout
отправляется с вашего компьютера этому посреднику. Посредник может установить любой тайм-аут, который он хочет от себя для вашей лямбда-функции. Это определенно не ошибка HTTPie.