Flask:对客户端的异步响应

时间:2014-01-21 13:28:22

标签: python asynchronous background flask response

我正在使用Flask在python应用程序中开发Web服务器。我正在实现这种情况:客户端(它不会是浏览器)发送请求,服务器在后台执行一些长任务,并在完成时将响应发送回客户端异步。有可能吗?

1 个答案:

答案 0 :(得分:6)

使用HTTP协议无法完成您的要求。每个请求都会同步收到响应。最接近你想要的是:

客户端发送请求,服务器立即响应作业ID,同时也为此长计算启动后台任务。

然后,客户端可以通过在新请求中发送作业ID来轮询服务器的状态。响应再次立即生成并包含作业状态,例如“正在进行”,“已完成”,“失败”等。服务器还可以返回进度百分比,客户端可以使用该百分比来呈现进度条。

您也可以实现Web套接字,但这需要启用套接字的服务器和客户端。