import sys import uvicorn import signal from api import * from sockets.socket_server import * import uvicorn.loops.auto import uvicorn.protocols.http.auto import uvicorn.protocols.websockets.auto import uvicorn.lifespan.on from multiprocessing import Process, freeze_support def handle_shutdown(signum, frame): """关闭系统应用服务""" # 终止事件循环 loop = asyncio.get_event_loop() loop.call_soon_threadsafe(loop.stop) sys.exit(0) if __name__ == "__main__": signal.signal(signal.SIGINT, handle_shutdown) signal.signal(signal.SIGTERM, handle_shutdown) # 控制台默认关闭输出信息,如果想要查看控制台输出,请单独启动服务 npm run dev-python print("python server is running at port:", PORT) # uvicorn会多创建一个进程,并且stdio独立于控制台,如果(开发时)出现进程没有关闭,可尝试关闭终端 print("python server is running at port:", APP_RUN) isDebug = True if IS_DEBUG == "true" else False uvicorn.run( APP_RUN, host=APP_HOST, port=int(PORT), reload=isDebug, workers=int(APP_WORKS), )