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