У меня есть служба REST REST, в которой одно действие POST может занять много времени (например, тридцать секунд), прежде чем возвращать HTTP 204 No Content.Как очистить заголовки в колбе перед отправкой HTTP 204?
Сервис размещается на два сервера выступает в качестве перехода на другой ресурс, с Nginx решить, какой сервер должно использоваться, конфигурация Nginx является:
upstream demo-failover {
server http-demo-primary.example.com weight=1000 max_fails=0;
server http-demo-failover.example.com backup;
}
server {
server_name demo.example.com;
proxy_next_upstream error timeout invalid_header;
proxy_connect_timeout 2;
proxy_redirect off;
proxy_read_timeout 240s;
}
При выполнении запроса заинтересованного POST, Nginx передает его http-demo-primary
и так как он не получает ответа в течение двух секунд, отказывается и делает другой запрос http-demo-failover
. Очевидно, это не подходит: поскольку первая машина запущена и работает, Nginx не должен отказываться от второй машины.
Я предполагаю, что отправка заголовков - фактически любой заголовок сделает трюк - из службы будет достаточно, чтобы Nginx понял, что машина активна и что она не должна переходить на другой.
Я знаю, как это сделать в PHP и ASP.NET. С другой стороны, единственная подобная вещь, которую я могу найти в Flask, - это Streaming Contents раздел официальной документации, который кажется мне неподобающим в моем случае, где ответ HTTP 204.
Как скрыть некоторые заголовки в контексте, где объект-тело, возвращаемое сервером, пуст?