wsgi工作线程重新启动时运行启动代码

2024-10-02 08:16:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个django项目,使用gunicorn运行wsgi应用程序。啊,对像我这样的python新手来说太多了

我有一个在应用程序启动时运行的低于gunicorn的命令

exec ./env/bin/gunicorn $wsgi:application \
    --config djanqloud/gunicorn-prometheus-config.py \
    --name "djanqloud" \
    --workers 3 \
    --timeout 60 \
    --user=defaultuser --group=nogroup \
    --log-level=debug \
    --bind=0.0.0.0:8002

下面是我的wsgi.py文件:

import os
from django.core.wsgi import get_wsgi_application

os.environ['DJANGO_SETTINGS_MODULE'] = 'djanqloud.settings'
application = get_wsgi_application()

docker容器中“ps--eaf”命令中显示的gunicorn命令:

/opt/gq-console/env/bin/python2 /opt/gq-console/env/bin/gunicorn wsgi:application --config /opt/gq-console//gunicorn-prometheus-config.py --name djanqloud --workers 3 --timeout 60 --user=gq-console --group=nogroup --log-level=debug --bind=0.0.0.0:8002

它们是我在django项目中创建的一个简单线程,当上述工作线程被终止时,这些线程将被终止

我的问题是:

当上述工作线程自动重新启动时,是否仍然可以再次创建线程

我试图覆盖wsgi.py文件中的get_wsgi_application()函数,但在启动工作线程时出现以下错误:

AppImportError: Failed to find application object: 'application'.

我是PythonDjango和wsgi应用程序的新手,所以请尝试详细说明您的答案

基本上,我正在寻找一个可以保存启动代码的位置,该代码在wsgi工作线程被终止和自动启动时运行。 谢谢


Tags: djangopy命令envconfig应用程序wsgiget
1条回答
网友
1楼 · 发布于 2024-10-02 08:16:31

要在服务器启动后自动启动应用程序,或在gunicorn工作人员死亡时自动重新启动应用程序,请使用过程控制系统,如supervisor。这将负责自动重新启动gunicorn进程

相关问题 更多 >

    热门问题