diff --git a/pynecone/constants.py b/pynecone/constants.py index 444d191d9..80943ae3f 100644 --- a/pynecone/constants.py +++ b/pynecone/constants.py @@ -77,6 +77,7 @@ BACKEND_HOST = "0.0.0.0" TIMEOUT = 120 # The command to run the backend in production mode. RUN_BACKEND_PROD = f"gunicorn --worker-class uvicorn.workers.UvicornH11Worker --preload --timeout {TIMEOUT} --log-level critical".split() +RUN_BACKEND_PROD_WINDOWS = f"uvicorn --timeout-keep-alive {TIMEOUT}".split() # Compiler variables. # The extension for compiled Javascript files. diff --git a/pynecone/utils.py b/pynecone/utils.py index 51e4825e3..dd04e2ac8 100644 --- a/pynecone/utils.py +++ b/pynecone/utils.py @@ -799,16 +799,33 @@ def run_backend_prod( setup_backend() num_workers = get_num_workers() - command = constants.RUN_BACKEND_PROD + [ - "--bind", - f"0.0.0.0:{port}", + command = ( + constants.RUN_BACKEND_PROD_WINDOWS + + [ + "--host", + "0.0.0.0", + "--port", + str(port), + "--log-level", + loglevel, + f"{app_name}:{constants.APP_VAR}", + ] + if platform.system() == "Windows" + else constants.RUN_BACKEND_PROD + + [ + "--bind", + f"0.0.0.0:{port}", + "--threads", + str(num_workers), + "--log-level", + str(loglevel), + f"{app_name}:{constants.APP_VAR}()", + ] + ) + + command += [ "--workers", str(num_workers), - "--threads", - str(num_workers), - "--log-level", - str(loglevel), - f"{app_name}:{constants.APP_VAR}()", ] subprocess.run(command)