Re: Очень медленный ответ после нескольких быстрых ответов

Evgeniy Berdnikov bgx на protva.ru
Вт Сен 26 08:24:29 UTC 2017


On Tue, Sep 26, 2017 at 04:07:34AM -0400, EugeneNF wrote:
> Тут-то и возникает противоречие - как приложению узнать, что второй запрос
> блокирован поскольку nginx ждёт окончания первого запроса?  Решение видится
> в два этапа - первое nginx просто обрывает первый запрос.

 Каким образом? Вместо абстрактных фантазий лучше напишите конкретно
 что значит "обрывает запрос" -- какие системные вызовы используются,
 что отправляется клиенту, что серверу приложений? Почему вы думаете,
 что сервер приложений чего-то ждёт от апстрима, чтобы срочно прервать
 свою работу? А если не ждёт, то как он узнает, что запрос нужно
 прекратить обрабатывать?

> А приложение уже решает, что же делать при потере связи с клиентом,

 Как оно узнает о потере связи? Конкретный механизм, pls. Какие вызовы,
 какие пакеты пересылаются, какие сигналы/ошибки/etc получает процесс.

>  т.е. заканчивает работу
> с закрытием всего открытого - файлов, баз данных и т.д.

 А если базе отправлен запрос, который она будет молотить долгое время,
 как его прервать? Это точно такая же проблема, которая возникает при
 взаимодействии сервера приложений и nginx, между которыми нет никакой
 асинхронной коммуникации.
-- 
 Eugene Berdnikov


Подробная информация о списке рассылки nginx-ru