• 陈泽健's avatar
    fix(scheduler): 新增僵尸执行常驻看门狗,杜绝执行线程死亡卡死调度 · 72db5e2e
    陈泽健 提交于
    背景:5.44 出现执行线程死亡但进程存活的「僵尸执行」——DB 记录卡 running
    29 小时,内存锁已释放但 DB 层 running 守卫(scheduler_service.py)永久挡死
    调度,定时任务 6 小时触发全部被跳过。启动期 recover_interrupted_executions
    只兜进程重启,无法兜线程死亡。
    
    实现(execution_service.py + main.py):
    - 新增常驻 watchdog_loop,每 60s 扫描 UI running/pending 执行
    - 双活信号:内存心跳(每用例完成后 touch)+ DB 结果数跨扫描增长
      (非绝对数量,存量结果不算存活)
    - 30 分钟无活信号判僵尸,标记 failed + 释放内存锁(set_running_execution)
    - 安全测试执行不纳入看门狗;5 分钟启动缓冲避免误杀
    
    验证:
    - 新增 tests/test_watchdog_stale_execution.py(9 例,全绿)
    - 5.202/5.60 已部署并清理各自 1 个僵尸执行(330/0 条结果),自动触发新回归
    - 5.44 等待当前 332 用例回归跑完后部署
    Co-Authored-By: 's avatarClaude <noreply@anthropic.com>
    72db5e2e
名称
最后提交
最后更新
..
data Loading commit data...
executors Loading commit data...
models Loading commit data...
routers Loading commit data...
schemas Loading commit data...
services Loading commit data...
simulators Loading commit data...
tasks Loading commit data...
utils Loading commit data...
websocket Loading commit data...
__init__.py Loading commit data...
config.py Loading commit data...
database.py Loading commit data...
main.py Loading commit data...