1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # -*- coding:utf-8 -*-
- # 参考:
- # https://blog.csdn.net/y472360651/article/details/78538188
- # https://docs.gunicorn.org/en/stable/settings.html#server-mechanics
- import multiprocessing
- import os
- from config import CfgBaseInit
- project_path = CfgBaseInit.project_path
- project_name = CfgBaseInit.project_name
- # debug 开启
- debug = True
- # 后台守护模式
- daemon = True
- # daemon = False # 如果考虑使用 supervisor 的话,将此关闭较为稳妥
- # 更改代码后台重新加载
- # reload = True
- reload = False
- # 预加载资源
- preload_app = True
- bind = CfgBaseInit.bind # 绑定ip和端口号
- # backlog = 512 # 监听队列
- chdir = '{}'.format(project_path) # gunicorn要切换到的目的工作目录
- timeout = 180 # 超时
- # worker_class = 'gevent' #使用gevent模式,还可以使用sync 模式,默认的是sync模式
- worker_class = 'uvicorn.workers.UvicornWorker' # sync 模式, fastapi 框架使用的是 asgi ,wsgi 可使用 gevent 模式
- # 设置最大并发量
- worker_connections = 10000
- # 长链接保持时间 1-5s, 默认 2
- keepalive = 180
- workers = multiprocessing.cpu_count() * 2 + 1 # 进程数
- threads = min(32, (os.cpu_count() or 1) + 4) # if "uvicorn" not in worker_class else 1 # 指定每个进程开启的线程数
- loglevel = 'debug' # 日志级别,这个日志级别指的是错误日志的级别,而访问日志的级别无法设置
- access_log_format = '%(t)s %(p)s %(h)s "%(r)s" %(s)s %(L)s %(b)s %(f)s" "%(a)s"' # 设置gunicorn访问日志格式,错误日志无法设置
- pidfile = "{}/logs/pid.pid".format(project_path)
- accesslog = "{}/logs/gunicorn_access.log".format(project_path) # 访问日志文件
- errorlog = "{}/logs/gunicorn_error.log".format(project_path) # 错误日志文件
|