36 lines
867 B
Python
36 lines
867 B
Python
"""
|
|
应用启动入口:读取 Config 并启动 Uvicorn。
|
|
开发与生产均使用该单一角色入口,由外层脚本/编排并行管理。
|
|
"""
|
|
|
|
from pathlib import Path
|
|
import uvicorn
|
|
|
|
from jingrow.config import Config
|
|
|
|
|
|
def main() -> None:
|
|
env = str(getattr(Config, "environment", "development")).lower()
|
|
is_production = env == "production"
|
|
|
|
host = getattr(Config, "backend_host", "0.0.0.0")
|
|
port = int(getattr(Config, "backend_port", 9001))
|
|
reload_enabled = (not is_production) and bool(getattr(Config, "backend_reload", True))
|
|
|
|
apps_dir = Path(__file__).resolve().parents[2]
|
|
reload_dirs = [str(apps_dir)] if reload_enabled else None
|
|
|
|
uvicorn.run(
|
|
"jingrow.main:app",
|
|
host=host,
|
|
port=port,
|
|
reload=reload_enabled,
|
|
reload_dirs=reload_dirs,
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|
|
|