Python 如何在发送HTTP 204之前冲洗烧瓶中的头?

Python 如何在发送HTTP 204之前冲洗烧瓶中的头?,python,flask,http-headers,flush,Python,Flask,Http Headers,Flush,我有一个Flask REST服务,其中一个POST操作可能需要很长时间(例如30秒)才能返回HTTP 204 No内容 该服务托管在两台服务器上,作为故障切换,由Nginx决定应使用哪台服务器,Nginx配置为: upstream demo-failover { server http-demo-primary.example.com weight=1000 max_fails=0; server http-demo-failover.example.com backup; }

我有一个Flask REST服务,其中一个POST操作可能需要很长时间(例如30秒)才能返回HTTP 204 No内容

该服务托管在两台服务器上,作为故障切换,由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故障切换
发出另一个请求。显然,这是不合适的:因为第一台机器已经启动并运行,Nginx不应该故障切换到第二台机器

我认为发送头实际上任何头都可以从服务中完成这项任务,这就足以让Nginx理解机器是活动的,不应该故障切换到另一台机器

我知道如何在PHP和ASP.NET中实现这一点。另一方面,我能在Flask中找到的唯一类似的东西是官方文档的一部分,这在我的例子中似乎不合适,其中的响应是HTTP 204


在服务器返回的实体体为空的上下文中,如何刷新某些头?

长时间运行HTTP请求通常是个坏主意。相反,请考虑快速返回<代码> HTTP 202接受响应,然后异步执行长时间运行的处理。如果客户端需要知道请求何时完成,您可以返回一个
Location
标头,其中包含一个URL,客户端可以轮询该URL以了解任务的状态