У меня есть приложение для приложения Django, и мне было интересно, можно ли nginx распространить прервать/закрыть uwsgi/Django.
В основном я знаю, что nginx знает о преждевременном прерывании/закрытии, потому что по умолчанию он uwsgi_ignore_client_abort
отключен, и вы получаете ошибки nginx 499 в ваших журналах nginx, когда запросы прерываются/закрываются до отправки ответа. Как только uwsgi завершает обработку запроса, он выдает "IO Error", когда он возвращается, чтобы вернуть ответ nginx.
Включение uwsgi_ignore_client_abort
в "on" просто заставляет nginx не знать о прерывании/закрытии и удаляет uwsgi "Ошибки IO", потому что uwsgi все равно может записать обратно в nginx.
Моим вариантом использования является то, что у меня есть приложение, в котором люди просматривают некоторые результаты ajax очень быстро, и поэтому, если быстро перейти на страницу, я отменяю ожидающий запрос ajax на пропущенную страницу, это позволяет клиенту быть чистым и эффективным. Но это ничего не делает для серверной части (uwsgi/Django), потому что они все равно должны обрабатывать каждый отдельный запрос, даже если ничего не будет ждать ответа.
Теперь очевидно, что могут быть определенные страницы, где я не хочу, чтобы запрос был преждевременно прерван по какой-либо причине. Но я использую сельдерей для длительных запросов, которые могут попасть в эту категорию.
Так возможно ли это? uwsgi's
Настройка hariakari заставляет меня думать, что это на каком-то уровне.... просто не могу понять, как это сделать.