我有一个简单的Flask应用程序,是单页的上传HTML文件,然后在POST请求上对其进行一些处理;我使用beautifulsoup和pandas,在通常情况下需要5-10秒才能完成任务。
最终,我使用pandas将结果数据框导出到Excel中(如果之前存储的Excel有更新,则进行更新)。在GET请求上,我返回此数据框的结果。
现在的问题是......在这5-10秒内,应用程序没有响应;即使我从另一台计算机访问我的应用程序,也要等待5-10秒才会显示。 这意味着,如果此应用程序的任何用户上传了他的文件,则其他人必须等待他的作业完成。
同时我的系统和Python版本如下...
注意:我想将它移植到Python3.3,并希望仍然在我的Windows 7机器上使用!
最终,我使用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,并希望仍然在我的Windows 7机器上使用!
processes=10
,但它停在了os.fork()
;好吧,那我必须将我的应用程序移动到更好的替代方案,比如Linux机器; 这样,我需要指定进程数吗??所以有没有办法让我的应用程序在每个新请求时自动添加新进程?? - namitrun_simple
文档:http://werkzeug.pocoo.org/docs/serving/#werkzeug.serving.run_simple 所有传递给app.run
的参数都会传递给run_simple
。在 Windows 上,请使用多线程。在 Linux 上,请使用多个线程和/或进程。 - A. Jesse Jiryu Davis