烧瓶& uwsgi:flask在开始新的子进程后不响应请求

时间:2016-08-07 03:04:38

标签: python nginx flask wsgi

我正在尝试使用nginx,uwsgi和flask将我最近写的烧录应用程序部署到服务器。

根据特定请求,我正在进行一些时间密集的计算,这个计算器开始一个新的过程(使用来自Python的Process模块的multiprocessing)。 Flask能够通过multiprocessing.Pipe()与该子进程通信,以获取有关计算状态的信息。启动子进程烧瓶后,向客户端发送包含唯一标识符的响应,以便稍后请求计算状态。 因此,我有两个端点,如/api/calc/new/api/calc/<id>/status,可以开始新计算或获取其状态。

获取状态是使用轮询服务实现的,该服务每10秒请求一次状态,并在服务器resp处理api/calc/new请求后触发。 AngularJS&#39;承诺所需的API端点已得到解决。

使用由app.run(host='0.0.0.0', debug=True)调用的flask内置开发服务器,上述方法效果很好。

使用uwsgi部署到nginx时出错了。在通过所需请求开始新计算之后,似乎产生了一个新进程,因为top中显示的uwsgi进程之一的CPU负载增加到大约90%。但是,承诺似乎没有得到解决,因为服务器没有回答请求。烧瓶app。

那么,为什么这与内置的开发服务器一起工作,但是使用nginx和uwsgi不起作用?是否有任何方法可以使生产环境中的工作符合要求?

0 个答案:

没有答案