问题描述:
docker里面用gunicorn 启动Django服务 代码加载两次
/usr/local/bin/gunicorn QaPlatform.wsgi:application -c gunicorn.conf.py
workers=1 # 并行工作进程数
threads=10 # 指定每个工作者的线程数
bind=['0.0.0.0:8001'] # 监听内网端口8000
proc_name='qaServer' # 进程名称
pidfile='/tmp/qaServer.pid' # 设置进程文件目录
worker_class='gthread' # 工作模式协程
timeout=30 # 超时
max_requests=6000 # 最大请求数
`
在您的描述中,问题似乎与Gunicorn在服务器上启动Django应用程序时出现的多个进程和重复执行定时任务有关。这可能与Gunicorn的工作方式以及Django的配置有关。
以下是一些可能有助于解决问题的建议:
gunicorn.conf.py
)没有额外的参数或配置,导致多个工作进程启动。通常情况下,只需要设置workers
和bind
等基本配置。gthread
作为工作模式,这可能导致线程的使用。确保您的应用程序代码和Django设置与线程兼容,不会导致多个定时任务实例。APScheduler
时,您可以在manage.py
中注册任务,确保它只在主进程中运行。--reload
选项,因为它会导致Gunicorn在代码更改时重新加载应用程序,从而产生额外的进程。最重要的是,检查和调试Gunicorn和Django的配置以确保它们按照您的预期运行。如果问题仍然存在,可能需要更深入的检查和调试,以查明问题的根本原因。