Cron 后台调度线程循环与崩溃自愈
解密 cron/scheduler.py 中的多线程调度循环、任务重试与故障转移
📊 图 8-2-1:Cron 计划任务触发、多线程池执行与数据库状态写入流程图
🔄 1. 后台调度循环 (Scheduler Loop)
在 cron/scheduler.py 中,系统创建了一个独立的守护线程用于后台轮询。该线程每秒钟检查一次任务列表,计算哪个任务已到达触发点,并将其推入专用的批处理执行池中。
📊 图 8-2-2:定时任务超时检测、崩溃捕捉与死信队列(DLQ)重试流程图
🩹 2. 异常重试与死信队列 (DLQ) 故障转移
在任务执行中可能会因为网络超时导致 API 失败。调度器能够捕捉此类 Operational / Request 异常,并进行指数退避重试;多次重试失败的任务会被送入死信队列并记录错误日志,绝不卡死主线程。