Newer
Older
safe-algo-pro / algo_main.py
zhangyingjie 24 days ago 1 KB 服务拆分(过程版本)
import asyncio

from algo.algo_runner import AlgoRunner
from algo.scene_runner import SceneRunner
from db.database import get_db
from services.device_model_relation_service import DeviceModelRelationService
from services.device_scene_relation_service import DeviceSceneRelationService
from services.device_service import DeviceService
from services.model_service import ModelService
from services.scene_service import SceneService


async def main():
    """主函数"""
    db_gen = get_db()
    db = await db_gen.__anext__()

    device_service = DeviceService(db)
    model_service = ModelService(db)
    model_relation_service = DeviceModelRelationService(db)
    scene_service = SceneService(db)
    scene_relation_service = DeviceSceneRelationService(db)
    main_loop = asyncio.get_running_loop()

    algo_runner = AlgoRunner(
        device_service=device_service,
        model_service=model_service,
        relation_service=model_relation_service,
    )

    scene_runner = SceneRunner(
        device_service=device_service,
        scene_service=scene_service,
        relation_service=scene_relation_service,
        tcp_manager=None,
        main_loop=main_loop
    )

    await algo_runner.start()
    await scene_runner.start()

    await asyncio.Event().wait()  # 保持运行


if __name__ == '__main__':
    asyncio.run(main())