105 lines
2.4 KiB
Python
105 lines
2.4 KiB
Python
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()
|
|
|
|
# 系统管理器(协调所有子系统)
|
|
=======
|
|
def test_middleware(message:Message):
|
|
print(message.topic)
|
|
|
|
#ASDADASDASDS
|
|
@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()
|
|
|
|
|
|
>>>>>>> 098f7c93c0c5acd5eecc6987133e1bf02989437a
|
|
system_manager= get_system_manager(db_manager, message_bus)
|
|
system_manager.register_subsystem_from_config()
|
|
system_manager.start()
|
|
#work_flow_engine.start()
|
|
|
|
|
|
<<<<<<< HEAD
|
|
yield # 应用运行期间
|
|
=======
|
|
yield
|
|
>>>>>>> 098f7c93c0c5acd5eecc6987133e1bf02989437a
|
|
|
|
# 关闭时停止所有子系统
|
|
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
|
|
<<<<<<< HEAD
|
|
uvicorn.run(app, host='127.0.0.1', port=5000)
|
|
=======
|
|
uvicorn.run(app, host='0.0.0.0', port=5000)
|
|
>>>>>>> 098f7c93c0c5acd5eecc6987133e1bf02989437a
|