from contextlib import asynccontextmanager from fastapi import FastAPI import logging import asyncio from database_manager import get_db_manager import threading from message_bus import get_message_bus,Message from work_flow_engine import get_work_flow_engine from system_manager import get_system_manager import atexit import os # 2355555444444445555666666 #region 报错信息 import traceback def raise_error(): log(f"报错了:") # 获取异常的堆栈信息 exception_traceback = traceback.format_exc() log(exception_traceback,2) #endregion # 中间件 def test_middleware(message:Message): print(message.topic) @asynccontextmanager async def lifespan(app: FastAPI): # 启动时初始化系统管理器和子系统 # 数据库管理器 db_manager=get_db_manager() db_manager.initialize() # 消息总线(支持中间件) message_bus = get_message_bus() message_bus.add_middleware(test_middleware) #work_flow_engine=get_work_flow_engine() # 系统管理器(协调所有子系统) system_manager= get_system_manager(db_manager, message_bus) system_manager.register_subsystem_from_config() system_manager.start() #work_flow_engine.start() yield # 应用运行期间 # 关闭时停止所有子系统 system_manager.stop() #db_manager.close() app = FastAPI( title="系统管理器 API", description="HY02自动测试系统", version="1.0.0" ) app.router.lifespan_context = lifespan @app.get('/test') async def test(): return "test successful" @app.get('/api/interface_get') async def interface_test(): return "请求设备接口" if __name__ == '__main__': import uvicorn uvicorn.run(app, host='127.0.0.1', port=5000)