Job Execution Monitor — 作业执行监控
v1.0.3每小时监控定时的cron jobs,如果jobs失败或错过预期运行时间,则会提醒你,并且会跟踪警报状态以避免垃圾邮件。
运行时依赖
安装命令
点击复制技能文档
作业执行监控器 监控定时作业(cron)并在它们失败或错过计划时发出警报。 安装/更新(ClawHub) 安装:clawhub install job-execution-monitor 更新:clawhub update job-execution-monitor 何时使用 当用户要求: "监控cron作业" "在作业失败时发出警报" "检查作业是否运行" "作业健康检查" "任务监控" "为什么我的定时作业没有运行?" 它的作用 基于心跳的监控:代理在周期性心跳轮询(~每60分钟)期间检查作业 使用最便宜的LLM(Gemini Flash或Haiku)以最小化成本 仅在检测到问题时发送警报 跟踪警报状态以避免垃圾邮件 成本:~100k令牌/天(~48次检查×2k令牌) 工作原理 配置:要监控的作业在job-execution-monitor.json中列出 心跳检查:代理每15-30分钟唤醒一次,检查作业每~4次唤醒 检测:比较上次运行时间与预期计划+容忍度 警报:带有上下文的唤醒事件(预期计划与上次运行)→您决定下一步 恢复:清除警报,当作业再次成功运行 禁用/卸载 如果通过systemd用户计时器安装 systemctl --user stop openclaw-job-execution-monitor.timer systemctl --user disable openclaw-job-execution-monitor.timer systemctl --user daemon-reload # 可选:删除单元文件 rm -f ~/.config/systemd/user/openclaw-job-execution-monitor.service \ ~/.config/systemd/user/openclaw-job-execution-monitor.timer 如果通过cron安装 crontab -l | sed '/job-execution-monitor\/scripts\/healthcheck\.sh/d' | crontab - 可选清理(配置/状态/日志) rm -f ~/.openclaw/workspace/job-execution-monitor.json rm -f ~/.openclaw/workspace/.job-execution-monitor-state.json rm -f ~/.openclaw/workspace/job-execution-monitor.log 配置文件:~/.openclaw/workspace/job-execution-monitor.json { "checkIntervalMin": 60, "jobs": { "每日21:00日记(项目+成就+次日计划)": { "schedule": "0 22 ", "tolerance": 600, "critical": true, "expectedMinLength": 200, "errorPatterns": ["error", "failed", "Pong", "token overflow"] } } } 字段: schedule:预期运行时间的cron表达式 tolerance:秒级的宽容期(默认600 = 10分钟) critical:如果为true,则立即发出警报(未来:可能升级) expectedMinLength:最小响应长度(第2阶段) errorPatterns:指示失败的文本模式(第2阶段) 状态跟踪文件:~/.openclaw/workspace/.job-execution-monitor-state.json { "lastCheck": 1771025000, "alerts": { "daily-wrap-up_missed": 1771024500 } } lastCheck:上次检查的Unix时间戳 alerts:警报键→时间戳的映射(防止垃圾邮件) 指令(适用于Agent) 在HEARTBEAT.md中:
作业执行监控器(每~60分钟,轮换)
检查cron作业是否错过计划。仅在发现问题时发出警报。 指令:- 加载
job-execution-monitor.json配置 - 调用
cron list - 对于配置中的每个作业:
- 提取
state.lastRunAtMs和state.lastStatus - 解析计划(例如"0 22 " = 每日22:00)
- 如果上次运行>(预期时间+容忍度):警报
- 如果上次运行最近:沉默
- 在警报时:发送带有作业名称、预期时间、上次运行时间的唤醒事件
- 在恢复时(之前正在警报,现在OK):发送恢复唤醒事件
~/.openclaw/workspace/.job-execution-monitor-state.json
- 跟踪哪些作业已经发出警报(不要垃圾邮件)
- 当作业恢复时清除警报标志