2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-08-25 21:05:54 +00:00
Files
.devcontainer
.devops
.github
.vscode
InvenTree
ci
contrib
deploy
docker
production
docker-compose.sqlite.yml
gunicorn.conf.py
init.sh
nginx.dev.conf
requirements.txt
docs
images
src
.deepsource.toml
.djlintrc
.eslintrc.yml
.gitattributes
.gitignore
.pkgr.yml
.pre-commit-config.yaml
CONTRIBUTING.md
Dockerfile
LICENSE
Procfile
README.md
RELEASE.md
SECURITY.md
backportrc.json
crowdin.yml
docker-compose.yml
docker.dev.env
package-lock.json
package.json
readthedocs.yml
requirements-dev.in
requirements-dev.txt
requirements.in
requirements.txt
runtime.txt
setup.cfg
tasks.py
yarn.lock
InvenTree/docker/gunicorn.conf.py
Matthias Mair 71c416bafd Add flake8-logging linting ()
* added flake8-logging to make logging more robust

* fixed LOG005 warnings

* fixed LOG008 warnings

* fixed LOG011 warnings

* fixed more LOG011 errors

* added ignores for intentional logger.error calls

* fixed even more LOG011 errors
2023-09-28 14:53:22 +10:00

43 lines
1.0 KiB
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("Starting gunicorn server with %s workers", workers)
max_requests = 1000
max_requests_jitter = 50
# preload app so that the ready functions are only executed once
preload_app = True