modify: 网关拆为独立包 chongming-gateway(源码迁出到 utils/gateway,打包只留 plugins.mbank)
This commit is contained in:
+10
-8
@@ -18,22 +18,22 @@ import os
|
||||
import platform
|
||||
import sys
|
||||
from multiprocessing import freeze_support
|
||||
from pathlib import Path
|
||||
|
||||
import server # noqa: F401 # 预加载:master 内完成模块银行装载,fork 出的 worker 共享
|
||||
import server # noqa: F401 # 预加载:master 内完成插件模块银行装载,fork 出的 worker 共享
|
||||
import uvloop # noqa: F401 # 显式导入保证打包时收集 uvloop(uvicorn/granian loop 依赖)
|
||||
from chongming import RELOAD_PATHS # 热重载监听目录(网关包内定义)
|
||||
from chongming.app.core.logger import get_logger
|
||||
from chongming.app.core.parent_death import guard_parent_death
|
||||
from utils.launch import launch
|
||||
from uvicorn.workers import UvicornWorker
|
||||
|
||||
use_shell = platform.system() == "Windows"
|
||||
|
||||
# 未设置 APP_SERVER 时的平台默认(保持现状)
|
||||
DEFAULT_SERVER = "uvicorn" if use_shell else "gunicorn"
|
||||
# DEFAULT_SERVER = "uvicorn" if use_shell else "gunicorn"
|
||||
DEFAULT_SERVER = "granian"
|
||||
SUPPORTED_SERVERS = ("gunicorn", "uvicorn", "granian")
|
||||
|
||||
# 热重载(reload=true)监听的源码目录,避免 granian 默认扫 cwd 时被 logs/ 写日志触发
|
||||
RELOAD_PATHS = [Path("src/chongming"), Path("src/plugins")]
|
||||
|
||||
|
||||
class UvloopUvicornWorker(UvicornWorker):
|
||||
CONFIG_KWARGS = {"loop": "uvloop"}
|
||||
@@ -134,8 +134,6 @@ def app_run(app_config: dict, default_config: dict):
|
||||
Returns:
|
||||
None: 此函数不返回值,直接启动服务器并阻塞运行
|
||||
"""
|
||||
from app.core.logger import get_logger # type: ignore
|
||||
|
||||
logger = get_logger("app")
|
||||
|
||||
params = _server_params(app_config)
|
||||
@@ -182,6 +180,10 @@ def main():
|
||||
Returns:
|
||||
None: 此函数不返回值,调用launch函数启动应用
|
||||
"""
|
||||
# 父进程死亡防护(master 侧):引导进程(onefile 引导/终端 shell)死亡时
|
||||
# ——含被 SIGKILL——内核给本进程发 SIGTERM,granian 走优雅停机收掉全部 worker;
|
||||
# worker 侧在 app 的 lifespan 里各自设置(PR_SET_PDEATHSIG 不跨 fork 继承)。
|
||||
guard_parent_death(get_logger("app"))
|
||||
freeze_support()
|
||||
launch(app_run, "production")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user