优化任务调度说明

This commit is contained in:
z66
2025-10-17 17:59:28 +08:00
commit fd67231866
49 changed files with 300973 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
import signal
import time
from datetime import datetime
from system_management.scheduler.task_scheduler import TaskScheduler
from utils.logger import CrossPlatformLog
from config import Config
# 初始化日志
log = CrossPlatformLog.get_logger("Main")
class IntelligenceSystem:
def __init__(self, db_config=None):
"""初始化系统(仅作为容器,不包含业务逻辑)"""
self.scheduler = TaskScheduler(Config.MYSQL_CONFIG, max_workers=5)
self._running = False
log.info("情报系统已初始化(Cron模式)")
def start(self):
"""启动系统主入口"""
self._running = True
self._setup_signal_handlers()
log.info("系统启动 - 运行在Cron调度模式")
try:
# 主循环 - 仅负责定期检查任务
while self._running:
# 检查并执行到期任务
self.scheduler.check_and_run_tasks()
# 短间隔轮询(每10秒检查一次,保证Cron时间精度)
time.sleep(10)
except Exception as e:
log.critical("系统主循环崩溃", exc_info=True)
finally:
self.shutdown()
def _setup_signal_handlers(self):
"""设置系统信号处理器"""
signal.signal(signal.SIGINT, self._handle_shutdown)
signal.signal(signal.SIGTERM, self._handle_shutdown)
log.debug("信号处理器已注册")
def _handle_shutdown(self, signum, frame):
"""处理系统关闭信号"""
log.info(f"收到关闭信号 {signum},开始关闭系统")
self._running = False
def shutdown(self):
"""优雅关闭系统"""
log.info("开始优雅关闭系统")
# 等待所有正在执行的任务完成
self.scheduler.executor.shutdown(wait=True, cancel_futures=False)
# 记录最终状态
pending_count = self.scheduler.get_pending_tasks_count()
log.info(
"系统关闭完成",
pending_tasks=pending_count,
shutdown_time=datetime.now()
)
if __name__ == "__main__":
try:
# 启动系统 - 仅作为入口,不包含调度逻辑
system = IntelligenceSystem()
system.start()
except Exception as e:
log.critical("情报系统启动失败", exc_info=True)
raise