flask + gunicorn,如何让重定向保持在同一工作线程

0 投票
1 回答
836 浏览
提问于 2025-04-18 18:08

我遇到了一个问题,我有一个用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']

撰写回答