Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法运行多个会话@app.route以触发python脚本_Python_Flask - Fatal编程技术网

无法运行多个会话@app.route以触发python脚本

无法运行多个会话@app.route以触发python脚本,python,flask,Python,Flask,我正在测试一个flask应用程序,以运行一个python脚本,该脚本将生成500000个随机数,并从中选出出现次数最多的前6个数字 我将输入地址栏,需要等待大约30分钟的结果。这很好用 但是,如果在第一个会话仍在运行时单击另一个浏览器选项卡以启动的另一个会话,它将挂起。它只能在第一个会话完成并返回结果时运行 我认为它不能处理多个会话,因为它是一个web引擎 任何关于如何实现这一点的建议都将不胜感激 多谢各位 @app.route('/gen') def start_gen(): # ru

我正在测试一个flask应用程序,以运行一个python脚本,该脚本将生成500000个随机数,并从中选出出现次数最多的前6个数字

我将输入地址栏,需要等待大约30分钟的结果。这很好用

但是,如果在第一个会话仍在运行时单击另一个浏览器选项卡以启动的另一个会话,它将挂起。它只能在第一个会话完成并返回结果时运行

我认为它不能处理多个会话,因为它是一个web引擎

任何关于如何实现这一点的建议都将不胜感激

多谢各位

@app.route('/gen')
def start_gen():
    # run the python script to generate 500,000 numbers and return top 6  
    # most generated number

    results = str(gen()) 

    return render_template('results.html',the_results = results)

Flask的内置服务器只用于开发,因此,它默认为单个线程,一次只能处理一个请求

您可以选择为并发请求提供服务,这也是一种实用的部署方法

或者,您也可以,这将传递给


30分钟要找出50万个随机数中的前6个,真是太长了。我知道它不能回答你的问题,但你能告诉我gen的来源吗?还有,你用的是哪种版本的烧瓶?
if __name__ == '__main__':
    app.run(threaded=True)  # run the flask server in threaded mode
if __name__ == '__main__':
    app.run(processes=10)  # run up to 10 concurrent processes