# -*- 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) # 错误日志文件