当一些请求被发送时,Gunicorn只启动工作人员

问题描述 投票:1回答:1

我为5名工人配置了gunicorn。然而,只有1开始,其他人就像睡眠状态。只有当我尝试登录,即向他们发送请求时,他们才会第一次分叉/启动。下面是配置。

$VIRT_ENV/gunicorn -c config.py utrade.wsgi:application \
                          --preload \
                          --log-level=debug \
                          --timeout=30 \
                          --access-logfile=- \
                          --access-logformat="%(r)s %(s)s" \
                          --log-file=-

在django views文件里面有龙卷风工作者初始化代码,有一种依赖性,我希望所有龙卷风进程在用户登录之前启动。为了说清楚,让我们说如果我把print('Hello')放在我的django views文件中。在提供请求之前,工作人员不会打印它。

如何让gunicorn启动所有工人而不是等待请求?我试过preload旗,但它没有帮助。

config.朋友

bind = 'unix:/code/internal.utradesolutions.com/tanmay.garg/web/web/utrade/run/gunicorn.sock' 
workers = 5 
daemon=True
python django gunicorn
1个回答
0
投票

您需要使用流程管理器(如supervisor)与运行wsgi进程的gunicorn分开管理龙卷风进程。

至于preload,这是一个在工人开始之前加载代码的优化(docs):

在分叉工作进程之前加载应用程序代码。

通过预加载应用程序,您可以节省一些RAM资源,并加快服务器启动时间。但是,如果将应用程序加载延迟到每个工作进程,则可以通过重新启动工作人员轻松地重新加载应用程序代码。

© www.soinside.com 2019 - 2024. All rights reserved.