mirror of
https://github.com/inventree/InvenTree.git
synced 2025-06-17 20:45:44 +00:00
.devcontainer
.devops
.github
.vscode
InvenTree
ci
contrib
deploy
docker
production
docker-compose.sqlite.yml
gunicorn.conf.py
init.sh
nginx.dev.conf
requirements.txt
images
.eslintrc.yml
.gitattributes
.gitignore
.gitpod.yml
.pkgr.yml
.pre-commit-config.yaml
CONTRIBUTING.md
Dockerfile
LICENSE
Procfile
README.md
RELEASE.md
SECURITY.md
crowdin.yml
docker-compose.yml
docker.dev.env
package-lock.json
package.json
requirements-dev.in
requirements-dev.txt
requirements.in
requirements.txt
runtime.txt
setup.cfg
tasks.py
40 lines
959 B
Python
40 lines
959 B
Python
"""Gunicorn configuration for InvenTree."""
|
|
|
|
import logging
|
|
import multiprocessing
|
|
import os
|
|
|
|
# Logger configuration
|
|
logger = logging.getLogger('inventree')
|
|
accesslog = '-'
|
|
errorlog = '-'
|
|
loglevel = os.environ.get('INVENTREE_LOG_LEVEL', 'warning').lower()
|
|
capture_output = True
|
|
|
|
# Worker configuration
|
|
# TODO: Implement support for gevent
|
|
# worker_class = 'gevent' # Allow multi-threading support
|
|
worker_tmp_dir = '/dev/shm' # Write temp file to RAM (faster)
|
|
threads = 4
|
|
|
|
|
|
# Worker timeout (default = 90 seconds)
|
|
timeout = os.environ.get('INVENTREE_GUNICORN_TIMEOUT', 90)
|
|
|
|
# Number of worker processes
|
|
workers = os.environ.get('INVENTREE_GUNICORN_WORKERS', None)
|
|
|
|
if workers is not None:
|
|
try:
|
|
workers = int(workers)
|
|
except ValueError:
|
|
workers = None
|
|
|
|
if workers is None:
|
|
workers = multiprocessing.cpu_count() * 2 + 1
|
|
|
|
logger.info(f"Starting gunicorn server with {workers} workers")
|
|
|
|
max_requests = 1000
|
|
max_requests_jitter = 50
|