diff --git a/public/config.toml b/public/config.toml index ecc1069..44eb5d2 100644 --- a/public/config.toml +++ b/public/config.toml @@ -67,6 +67,7 @@ port = 8000 reload = false workers = 4 access_log = false +timeout_keep_alive = 65 [production.logging] level = "INFO" diff --git a/pyproject.toml b/pyproject.toml index 2af445c..06203c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,6 +15,7 @@ dependencies = [ "bcrypt==4.0.1", "diskcache", "fastapi[uvicorn]", + "gunicorn>=23.0.0", "module-bank", "passlib[bcrypt]", "pyjwt", diff --git a/uv.lock b/uv.lock index 6c9a63f..e376518 100644 --- a/uv.lock +++ b/uv.lock @@ -372,6 +372,8 @@ dependencies = [ { name = "fastapi", version = "0.124.4", source = { registry = "https://mirrors.ustc.edu.cn/pypi/web/simple/" }, marker = "python_full_version < '3.9'" }, { name = "fastapi", version = "0.128.8", source = { registry = "https://mirrors.ustc.edu.cn/pypi/web/simple/" }, marker = "python_full_version == '3.9.*'" }, { name = "fastapi", version = "0.135.1", source = { registry = "https://mirrors.ustc.edu.cn/pypi/web/simple/" }, marker = "python_full_version >= '3.10'" }, + { name = "gunicorn", version = "23.0.0", source = { registry = "https://mirrors.ustc.edu.cn/pypi/web/simple/" }, marker = "python_full_version < '3.10'" }, + { name = "gunicorn", version = "25.3.0", source = { registry = "https://mirrors.ustc.edu.cn/pypi/web/simple/" }, marker = "python_full_version >= '3.10'" }, { name = "module-bank" }, { name = "passlib", extra = ["bcrypt"] }, { name = "pyjwt", version = "2.9.0", source = { registry = "https://mirrors.ustc.edu.cn/pypi/web/simple/" }, marker = "python_full_version < '3.9'" }, @@ -405,6 +407,7 @@ requires-dist = [ { name = "bcrypt", specifier = "==4.0.1" }, { name = "diskcache" }, { name = "fastapi", extras = ["uvicorn"] }, + { name = "gunicorn", specifier = ">=23.0.0" }, { name = "module-bank" }, { name = "passlib", extras = ["bcrypt"] }, { name = "pyjwt" }, @@ -778,6 +781,37 @@ wheels = [ { url = "https://mirrors.ustc.edu.cn/pypi/packages/29/4b/45d90626aef8e65336bed690106d1382f7a43665e2249017e9527df8823b/greenlet-3.3.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c04c5e06ec3e022cbfe2cd4a846e1d4e50087444f875ff6d2c2ad8445495cf1a", size = 237086, upload-time = "2026-02-20T20:20:45.786Z" }, ] +[[package]] +name = "gunicorn" +version = "23.0.0" +source = { registry = "https://mirrors.ustc.edu.cn/pypi/web/simple/" } +resolution-markers = [ + "python_full_version == '3.9.*'", + "python_full_version < '3.9'", +] +dependencies = [ + { name = "packaging", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://mirrors.ustc.edu.cn/pypi/packages/34/72/9614c465dc206155d93eff0ca20d42e1e35afc533971379482de953521a4/gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec", size = 375031, upload-time = "2024-08-10T20:25:27.378Z" } +wheels = [ + { url = "https://mirrors.ustc.edu.cn/pypi/packages/cb/7d/6dac2a6e1eba33ee43f318edbed4ff29151a49b5d37f080aad1e6469bca4/gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d", size = 85029, upload-time = "2024-08-10T20:25:24.996Z" }, +] + +[[package]] +name = "gunicorn" +version = "25.3.0" +source = { registry = "https://mirrors.ustc.edu.cn/pypi/web/simple/" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "packaging", marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://mirrors.ustc.edu.cn/pypi/packages/c4/f4/e78fa054248fab913e2eab0332c6c2cb07421fca1ce56d8fe43b6aef57a4/gunicorn-25.3.0.tar.gz", hash = "sha256:f74e1b2f9f76f6cd1ca01198968bd2dd65830edc24b6e8e4d78de8320e2fe889", size = 634883, upload-time = "2026-03-27T00:00:26.092Z" } +wheels = [ + { url = "https://mirrors.ustc.edu.cn/pypi/packages/43/c8/8aaf447698c4d59aa853fd318eed300b5c9e44459f242ab8ead6c9c09792/gunicorn-25.3.0-py3-none-any.whl", hash = "sha256:cacea387dab08cd6776501621c295a904fe8e3b7aae9a1a3cbb26f4e7ed54660", size = 208403, upload-time = "2026-03-27T00:00:27.386Z" }, +] + [[package]] name = "h11" version = "0.16.0"