Python Flask应用程序在处理请求时挂起

Python Flask应用程序在处理请求时挂起,python,flask,tornado,Python,Flask,Tornado,我有一个简单的烧瓶应用程序,单页,上传html,然后在帖子上做一些处理;应邮政要求;我正在使用beautifulsoup,pandas,通常需要5-10秒才能完成任务。 最后,我将生成的数据框导出到带有pandas的excel(如果存在,则更新先前存储的excel)。 根据GET请求,我返回这个数据帧的结果。 现在的问题是。。。应用程序在5-10秒时没有响应。;即使我从另一台计算机访问我的应用程序;它将在5-10秒后显示。 这意味着如果此应用程序的任何用户已上载其文件;然后其他人不得不等到他的工

我有一个简单的烧瓶应用程序,单页,上传html,然后在帖子上做一些处理;应邮政要求;我正在使用beautifulsoup,pandas,通常需要5-10秒才能完成任务。

最后,我将生成的数据框导出到带有pandas的excel(如果存在,则更新先前存储的excel)。 根据GET请求,我返回这个数据帧的结果。

现在的问题是。。。应用程序在5-10秒时没有响应。;即使我从另一台计算机访问我的应用程序;它将在5-10秒后显示。 这意味着如果此应用程序的任何用户已上载其文件;然后其他人不得不等到他的工作完成

我甚至在我的应用程序中添加了下面提到的代码;但没有改善

from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop

if __name__ == '__main__':
    http_server = HTTPServer(WSGIContainer(app))
    http_server.listen(5657)
    IOLoop.instance().start()
另外,我的系统和python版本如下

>>> sys.version
'2.7.5 |Anaconda 1.8.0 (32-bit)| (default, Jul  1 2013, 12:41:55) [MSC v.1500 32 bit (Intel)]'

注意:我想把它移到python3.3,并想留在我的Windows7机器上

Tornado通常是一个单线程web服务器。如果您专门为Tornado的异步风格编写代码,您可以同时处理多个请求,但在您的情况下,您没有这样做;你只是在用Tornado来处理烧瓶的请求,一次一个

移除Tornado并尝试使用Flask的多线程选项:

app.run(threaded=True)

如果您正在使用WSGI的run_simple函数,只需添加
threaded=true
参数

例如:

run_simple('0.0.0.0', 9370, application, use_reloader=True, use_debugger=True, threaded=True)

@杰西:现在它开始工作了。。我还尝试在windows上创建
进程=10
;它停在
os.fork()
;好的,然后我必须将我的应用程序移动到更好的备用;像linux机器;这样我就必须指定进程的数量??;那么,我的应用程序是否有任何方法可以在每个新请求上自动添加新进程?请查阅
run\u simple
的文档,此处:
app.run
的所有参数都传递给
run\u simple
。在Windows上,使用多线程。在Linux上,使用多线程和/或进程。