Cron 监控
Cron 监控为每个定时任务(备份、批处理或周期性脚本)提供一个唯一的 URL 供其 ping,并在 ping 迟到或缺失时通知你。任务错过周期时会被标记为降级,连宽限期也错过时则标记为故障。
和其他监控一样,当 cron 任务失败时,你可以和团队协作解决该事件,也可以选择更新你的状态页。
下面是 cron 监控列表的示例:

Cron 监控有什么用?
- 验证 cron 任务是否按时运行(依靠任务发来的 ping)。
- 任务延迟或没有完成时收到告警。
- 通过 Slack、邮件、短信、电话呼叫等方式接收告警。
点击某个 cron 监控后,你可以看到更多详情:

如何添加 cron 监控?
进入你的项目 → 监控 → 添加监控,选择 Cron / 心跳,然后让你的任务请求生成的 URL,并设置它的周期和宽限期。

监控类型
选择 Cron/心跳作为监控类型。

系统会为你生成一个唯一的 URL。你的 cron 任务每次运行时都应该向这个 URL 发送一个 HTTP 请求(HEAD、GET 或 POST)。
满足以下条件时视为监控成功
当任务按计划 ping 生成的 URL 时,cron 监控就算成功。你可以配置:
- **周期:**任务应该多久运行一次(例如每 15 分钟)。
- **宽限期:**在判定任务故障之前额外允许的时间。
如果到了周期时间任务仍未 ping,监控会被标记为性能下降。
如果到了宽限期任务仍未 ping,监控会被标记为故障。
你可以设置告警,在任务故障、性能下降或恢复时收到通知。
主动上报失败
向监控 URL 末尾追加 /fail 发送请求,即可把任务标记为失败,即使它已经运行并 ping 了监控。
如果你的脚本遇到错误,想让 Instatus 立刻把该任务记录为失败,这就很有用。
- 成功 ping:
https://cron.instatus.com/your-unique-url - 失败 ping:
https://cron.instatus.com/your-unique-url/fail
收到失败信号后,监控会被标记为故障,并立即按照你的告警设置发送告警。
测量任务执行时长
发送两次请求:任务开始时请求 /start,结束时发送成功或失败 ping,Instatus 会把两者之间的时间记录为任务的执行时间:
- 开始信号:任务开始时向
/start发送请求 - 成功/失败信号:任务完成或失败时向基础 URL 发送请求
- 开始 ping:
https://cron.instatus.com/your-unique-url/start - 成功 ping:
https://cron.instatus.com/your-unique-url - 失败 ping:
https://cron.instatus.com/your-unique-url/fail
开始信号与成功信号之间的时间会被记录为任务的执行时长。这有助于你跟踪性能,找出耗时超出预期的任务。
如果任务在发送开始信号之后失败了,请发送失败信号而不是成功信号,这样既标记为失败,也能记录执行时长。