gpt4 book ai didi

python - 使用 python 的 Multiprocessing 使响应卡在 gunicorn 上

转载 作者:太空狗 更新时间:2023-10-30 00:10:35 26 4
gpt4 key购买 nike

首先,我承认该标题中有几个或多个关键字,但我确实确实在尝试以正确的方式捕捉问题。这里的问题是,我似乎无法使用 python 多处理模块正确创建子进程,而不会导致网页响应挂起。我已经尝试了几个最新版本的 gunicorn,但问题仍然存在。有趣的是,这个问题从来都不是 ubuntu 服务器上的问题,但是现在将应用程序移动到 rhel6.5 这个问题本身就出现了。这是工作流程:

-路线被击中-提交的表单会命中路由并触发创建 multiprocessing.Process() ,完成的工作是休眠 30 秒-路由似乎已完成,作为打印多处理调用后的打印语句,但是浏览器保持连接打开并且在 30 秒 sleep 结束之前不会“完成加载”(显示页面)

请注意,表单提交不是此问题的一部分,它只是帮助查看问题的发生。

这是产生问题的一个非常简单的路由和函数:

def multi():
print 'begin multi'
time.sleep(30)
print 'end multi'

@app.route('/multiprocesstest', methods=['GET','POST'])
def multiprocesstest():

syntaxForm = forms.mainSyntaxForm()

if syntaxForm.validate_on_submit():
print 'before multi call'
th = multiprocessing.Process(target=multi)
th.start()
print 'after multi call'
return redirect('multiprocesstest')

return render_template('syntax_main.html', form=syntaxForm)

在对这个问题进行了广泛的研究和稀疏的谷歌搜索结果之后,我还没有找到任何结论。我将尝试使用另一个负载均衡器来检查问题是否仅出在 gunicorn 上。

最佳答案

multiprocessing 替换为 multiprocessing.dummy 可能会解决问题,因为 gunicornmultiprocessing 都是多处理模块,并且当您尝试在单个进程中调用多个进程时,它可能会导致麻烦。

关于python - 使用 python 的 Multiprocessing 使响应卡在 gunicorn 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com