# main_server.py import threading import time import os from core.app_manager import AppManager from web.server import run_web_server from vs_log_macros import VSC_INFO def main(): # 1. 确保目录存在 if not os.path.exists("config"): os.makedirs("config") if not os.path.exists("plugins"): os.makedirs("plugins") # 2. 初始化 AppManager manager = AppManager.Instance() # 3. 加载配置 VSC_INFO("main", "Loading configurations...") manager.load_configs() # 4. 自动启动 enabled 的组 VSC_INFO("main", "Starting enabled groups...") manager.start_all() # 5. 启动 Web Server (在主线程运行,或者新线程) #由于 uvicorn.run 是阻塞的,我们直接在主线程跑 Web, # 后台的 GroupCoordinators 已经在各自的线程里跑了。 VSC_INFO("main", "Starting Web API on port 8000...") try: # run_web_server() while True: time.sleep(3600) except KeyboardInterrupt: pass finally: # 退出时清理 VSC_INFO("main", "Shutting down...") # 停止所有组 for gid in list(manager.executors.keys()): manager.stop_group(gid) if __name__ == "__main__": main()