From fe09437214efcce4389abb28c8f36d049f717c63 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 16 Jun 2024 16:25:06 +1000 Subject: [PATCH] Fix for gunicorn command (#7450) (#7452) * Fix for gunicorn command * Allow override of worker count (cherry picked from commit 49f6981f463ca7b3c1808f36cccad3e0dcbecfc3) Co-authored-by: Oliver --- tasks.py | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/tasks.py b/tasks.py index fa2bf31f76..e2fd3c7396 100644 --- a/tasks.py +++ b/tasks.py @@ -764,18 +764,31 @@ def wait(c): return manage(c, 'wait_for_db') -@task(pre=[wait], help={'address': 'Server address:port (default=0.0.0.0:8000)'}) -def gunicorn(c, address='0.0.0.0:8000'): +@task( + pre=[wait], + help={ + 'address': 'Server address:port (default=0.0.0.0:8000)', + 'workers': 'Specify number of worker threads (override config file)', + }, +) +def gunicorn(c, address='0.0.0.0:8000', workers=None): """Launch a gunicorn webserver. Note: This server will not auto-reload in response to code changes. """ - c.run( - 'gunicorn -c ./docker/gunicorn.conf.py InvenTree.wsgi -b {address} --chdir ./InvenTree'.format( - address=address - ), - pty=True, - ) + here = os.path.dirname(os.path.abspath(__file__)) + config_file = os.path.join(here, 'contrib', 'container', 'gunicorn.conf.py') + chdir = os.path.join(here, 'src', 'backend', 'InvenTree') + + cmd = f'gunicorn -c {config_file} InvenTree.wsgi -b {address} --chdir {chdir}' + + if workers: + cmd += f' --workers={workers}' + + print('Starting Gunicorn Server:') + print(cmd) + + c.run(cmd, pty=True) @task(pre=[wait], help={'address': 'Server address:port (default=127.0.0.1:8000)'})