mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Merge pull request #1879 from SchrodingersGat/docker-improvements
Specify how many workers to use
This commit is contained in:
commit
60e4022568
@ -12,6 +12,7 @@ database setup in this file.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
import string
|
import string
|
||||||
@ -347,10 +348,22 @@ REST_FRAMEWORK = {
|
|||||||
|
|
||||||
WSGI_APPLICATION = 'InvenTree.wsgi.application'
|
WSGI_APPLICATION = 'InvenTree.wsgi.application'
|
||||||
|
|
||||||
|
background_workers = os.environ.get('INVENTREE_BACKGROUND_WORKERS', None)
|
||||||
|
|
||||||
|
if background_workers is not None:
|
||||||
|
try:
|
||||||
|
background_workers = int(background_workers)
|
||||||
|
except ValueError:
|
||||||
|
background_workers = None
|
||||||
|
|
||||||
|
if background_workers is None:
|
||||||
|
# Sensible default?
|
||||||
|
background_workers = 4
|
||||||
|
|
||||||
# django-q configuration
|
# django-q configuration
|
||||||
Q_CLUSTER = {
|
Q_CLUSTER = {
|
||||||
'name': 'InvenTree',
|
'name': 'InvenTree',
|
||||||
'workers': 4,
|
'workers': background_workers,
|
||||||
'timeout': 90,
|
'timeout': 90,
|
||||||
'retry': 120,
|
'retry': 120,
|
||||||
'queue_limit': 50,
|
'queue_limit': 50,
|
||||||
|
@ -27,6 +27,10 @@ ENV INVENTREE_MEDIA_ROOT="${INVENTREE_DATA_DIR}/media"
|
|||||||
ENV INVENTREE_CONFIG_FILE="${INVENTREE_DATA_DIR}/config.yaml"
|
ENV INVENTREE_CONFIG_FILE="${INVENTREE_DATA_DIR}/config.yaml"
|
||||||
ENV INVENTREE_SECRET_KEY_FILE="${INVENTREE_DATA_DIR}/secret_key.txt"
|
ENV INVENTREE_SECRET_KEY_FILE="${INVENTREE_DATA_DIR}/secret_key.txt"
|
||||||
|
|
||||||
|
# Worker configuration (can be altered by user)
|
||||||
|
ENV INVENTREE_GUNICORN_WORKERS="4"
|
||||||
|
ENV INVENTREE_BACKGROUND_WORKERS="4"
|
||||||
|
|
||||||
# Default web server port is 8000
|
# Default web server port is 8000
|
||||||
ENV INVENTREE_WEB_PORT="8000"
|
ENV INVENTREE_WEB_PORT="8000"
|
||||||
|
|
||||||
|
@ -1,6 +1,22 @@
|
|||||||
import multiprocessing
|
import multiprocessing
|
||||||
|
import os
|
||||||
|
import logging
|
||||||
|
|
||||||
|
|
||||||
|
logger = logging.get('inventree')
|
||||||
|
|
||||||
|
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
|
workers = multiprocessing.cpu_count() * 2 + 1
|
||||||
|
|
||||||
|
logger.info(f"Starting gunicorn server with {workers} workers")
|
||||||
|
|
||||||
max_requests = 1000
|
max_requests = 1000
|
||||||
max_requests_jitter = 50
|
max_requests_jitter = 50
|
||||||
|
Loading…
Reference in New Issue
Block a user