自动化长任务治理:租约、心跳、孤儿进程与安全回收

自动化长任务治理:租约、心跳、孤儿进程与安全回收

Trace、长稳态压测和批量工件导出可能运行数小时。控制端异常退出后,设备端采集器、端口转发和临时文件仍可能继续占用资源,最终导致后续任务失败甚至磁盘爆满。

一、不要把连接存活当作任务存活

网络连接可能短暂中断,控制端进程也可能重启。任务应拥有独立 job_id 和带期限的租约。执行端只有在租约有效时继续工作;心跳用于续租,而不是作为唯一身份。

二、租约状态

text 复制代码
created -> running -> renewing -> finishing -> completed
                    -> lease_expired -> recovering -> reclaimed

每次续租携带任务身份、执行代次和单调递增序列号,防止旧控制端恢复后覆盖新租约。

三、Fence Token

任务重派后,旧执行者可能仍在运行。为每次所有权分配递增的 fence token;写工件、更新状态和操作独占资源时验证 token。旧 token 即使重新联网,也不能继续提交结果。

四、孤儿资源清单

任务开始时登记进程、端口、临时目录、设备锁、采集会话和转发规则。回收器只处理登记在该任务名下的资源,不能按模糊进程名批量结束。

五、安全回收顺序

  1. 阻止任务产生新工作;
  2. 请求采集器正常结束并刷新缓冲;
  3. 校验已生成工件;
  4. 关闭进程、转发和设备锁;
  5. 删除已确认可删除的临时副本;
  6. 写入回收审计记录。

强制终止只作为超时后的降级动作。

六、临时文件保护

回收前解析并验证绝对路径必须位于任务工作根目录。完成上传且哈希一致的副本可以删除;未完成、损坏或仍需调查的现场进入短期隔离区,并设置容量上限和到期策略。

七、控制端恢复

控制端重启后查询执行端租约,而不是假设所有任务失败。对仍有效的任务恢复观察;对已过期任务启动回收;对状态冲突任务停止晋级并人工审核。

结语

长任务可靠性的关键不是永不掉线,而是失联后仍能明确所有权、保护有效工件并安全释放资源。租约、Fence Token 和资源登记表共同消除最危险的孤儿任务。

相关推荐
2601_962885721 小时前
从 baostock 迁移到 AlphaFeed:接口对照与代码迁移指南
python
AI情绪识别开源2 小时前
检信ALLEMOTION 标定治理与信号质量闸门 · 老年无感认知评估分析器
python
七夜zippoe2 小时前
启元 Q1 腿部运动学逆解:Python 算站立下蹲关节角
开发语言·python·ai·机器人·腿部运动学
第404号工位2 小时前
插上充电宝真能偷光相册?我拆解了一台改装充电宝,实测“恶意充电”的真实攻击链
linux·python·架构
技术卷3 小时前
Windows 下自定义 MCP 踩坑:stdin 默认继承导致 CPython 启动阻塞
python·mcp·zcode
小oo呆3 小时前
【学习心得】Python多进程
python·操作系统
CodeGL3 小时前
9、Python基础之IO编程
开发语言·数据库·python
HySpark3 小时前
ERes2Net声纹识别短音频匹配不稳定:从音频时长到有效音素的排查实践
python·语音识别·声纹识别·vad·eres2net
TomEval3 小时前
【测AI】第17篇:大模型评测方法论 —— LLM 怎么测?
人工智能·python·aigc·测试用例