flask + gunicorn,如何让重定向保持在同一工作线程
我遇到了一个问题,我有一个用gunicorn运行的flask应用,这个应用有多个工作进程,因为有些请求可能需要30分钟以上才能完成……我设置了多个工作进程,这样我可以同时处理多个这样的长请求。
我在处理一个POST请求时,设置了一些变量,然后我重定向到另一个页面去执行那个30分钟的请求。
问题是我发现,当重定向由另一个工作进程处理时,它并不知道我在之前的工作进程中设置的变量。
我想到的解决办法是让重定向在同一个工作进程中完成,但我不确定这样是否可行。
有没有什么建议可以解决这个问题呢?
谢谢!
1 个回答
1
当你把用户引导到一个不同的页面时,可以在GET请求中传递相关的参数。就像这样:
@app.route('/first', methods=['POST'])
def first():
var = request.form['variable']
return redirect(url_for('second', variable=var))
@app.route('/second', methods=['GET'])
def second():
var = request.args['variable']