#!/usr/bin/env python3
"""
总控官调度系统启动脚本
"""

import sys
import os
import json
import time
from datetime import datetime

# 添加路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

try:
    from main_scheduler import MainScheduler, DatabaseManager
except ImportError as e:
    print(f"导入模块失败: {e}")
    print("请确保 main_scheduler.py 在正确位置")
    sys.exit(1)

def main():
    print("=" * 60)
    print("总控官(main)调度系统")
    print("版本: 1.0.0 (混合调度策略)")
    print("启动时间:", datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    print("=" * 60)
    
    # 创建数据库管理器
    db_manager = DatabaseManager()
    
    # 创建调度器
    scheduler = MainScheduler(db_manager)
    
    print("正在初始化调度系统...")
    
    try:
        # 启动调度器
        scheduler.start()
        
        print("✅ 调度系统启动成功")
        print("\n📊 系统信息:")
        print("   - 数据库: SQLite (projects.db, agents.db, analytics.db)")
        print("   - 调度策略: 混合优先级 + 弹性并发")
        print("   - 错误处理: 4级混合策略")
        print("   - 监控粒度: 实时状态 + 告警通知")
        print("   - 数据保留: 30天历史数据")
        
        print("\n🎯 核心功能:")
        print("   1. 智能任务调度")
        print("   2. Agent行为规范管理")
        print("   3. 实时状态监控")
        print("   4. 自动错误处理")
        print("   5. 告警通知系统")
        
        # 保持运行
        print("\n🔄 调度系统运行中...")
        print("按 Ctrl+C 停止系统")
        
        while True:
            time.sleep(1)
            
    except KeyboardInterrupt:
        print("\n\n收到停止信号，正在关闭调度系统...")
        scheduler.stop()
        print("✅ 调度系统已停止")
        
    except Exception as e:
        print(f"\n❌ 系统运行异常: {e}")
        scheduler.stop()
        return 1
    
    return 0

if __name__ == "__main__":
    sys.exit(main())
