INNER CODE UNIT · Python
calculate_workers
br3ndonland/inboard · inboard/gunicorn_conf.py:9
def calculate_workers(
max_workers: str | None = None,
total_workers: str | None = None,
workers_per_core: str = "1",
) -> int:
"""Calculate the number of Gunicorn worker processes."""
cores = multiprocessing.cpu_count()
default = max(int(float(workers_per_core) * cores), 2)
use_max = m if max_workers and (m := int(max_workers)) > 0 else False
use_total = t if total_workers and (t := int(total_workers)) > 0 else False
use_least = min(use_max, use_total) if use_max and use_total else False
use_default = min(use_max, default) if use_max else default
return use_least or use_total or use_default
# Gunicorn settings
bind = os.getenv("BIND") or f"{os.getenv('HOST', '0.0.0.0')}:{os.getenv('PORT', '80')}"
accesslog = os.getenv("ACCESS_LOG", "-")