当一些请求被发送时,Gunicorn只启动工作人员
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当一些请求被发送时,Gunicorn只启动工作人员相关的知识,希望对你有一定的参考价值。
我为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
答案
您需要使用流程管理器(如supervisor
)与运行wsgi进程的gunicorn分开管理龙卷风进程。
至于preload
,这是一个在工人开始之前加载代码的优化(docs):
在分叉工作进程之前加载应用程序代码。
通过预加载应用程序,您可以节省一些RAM资源,并加快服务器启动时间。但是,如果将应用程序加载延迟到每个工作进程,则可以通过重新启动工作人员轻松地重新加载应用程序代码。
以上是关于当一些请求被发送时,Gunicorn只启动工作人员的主要内容,如果未能解决你的问题,请参考以下文章
gunicorn 使用主管启动时会引发数据库错误,手动启动时是不是正常工作?
Http 请求在从 ServiceBase.OnShutdown 发送时被中止,但在 OnStop 中没有