SuperAPI AI 工具集

Crontinel

Crontinel 是一款面向 Laravel 调度与队列的监控工具,专注于发现后台任务“已完成但未实际工作”的静默失败。它通过 HTTP 回执(receipt)接收来自 curl、Node、Python、Sidekiq 或 GitHub Actions 等运行时的 JSON 数据,将进程状态与业务结果分开存储和判断。例如,任务退出码为 0 但处理记录数为 0 时,若规则要求至少 1 条记录,检查会失败并发送邮件告警。它还能监控 worker 状态、队列深度、失败任务率等,帮助团队在用户察觉前捕获 cron、队列和 agent 的异常。目前提供免费起步,付费计划(Starter、Pro、Max)正在筹备中,Slack 和 webhook 通知尚未在公开页面提供。

访问官网

工具介绍

Crontinel 是一款针对 Laravel 调度(schedule)与队列(queue)的监控工具,核心目标是捕获那些“进程正常退出但实际未完成工作”的静默失败。它强调“完成不等于做完”(Finished is not the same as done),将进程状态与业务结果分开处理,避免仅凭 HTTP 200 或退出码 0 就误判任务健康。

用途

Crontinel 用于监控后台任务、cron 调度、队列 worker 以及 agent 的运行情况。典型场景包括:部署覆盖了 cron 条目导致调度器停止、worker 进程崩溃但队列管理器仍显示“运行中”、任务退出码为 0 但处理记录数为 0 等。这些情况下,传统监控可能显示绿色,但实际业务已中断。Crontinel 通过接收任务运行后的 HTTP 回执,对比业务规则(如最少记录数),在结果不符合预期时触发告警。

主要能力

  • HTTP 回执接收:任何运行时(curl、Node、Python、Sidekiq、GitHub Actions)都可以向 Crontinel 发送相同的 JSON 回执,使用 ingest key 进行认证。
  • 进程状态与业务结果分离:进程退出码 0 时状态保持 completed,但业务结果(outcome)由独立规则判断。例如规则要求至少 1 条记录,回执中 processed_records 为 0 则检查失败。
  • 缺失计数视为失败:回执中省略计数不会被当作健康,零是真实结果,缺失计数会触发失败。
  • Laravel 深度集成:提供 Composer 包,可从调度器附加回执,并上报队列深度和 Horizon 新鲜度。
  • Worker 监控:支持按 worker 类型查看状态、暂停检测、队列深度趋势、失败任务率等。
  • 告警与恢复:零工作告警和后续恢复均通过邮件发送。后续通过规则的回执会关闭事件。
  • 事件包(packet):Cursor、Claude Code 或 Codex 可以读取同一事件,事件包会说明完成不等于业务成功,不会将任务标记为健康。

使用方式

  1. 在任意运行时中,任务完成后向 Crontinel 发送 HTTP 回执,使用 ingest key(非 MCP key)。示例:curl 或 Node 发送相同 JSON 体。
  2. 对于 Laravel,安装 Composer 包,从调度器附加回执,并可上报队列深度和 Horizon 新鲜度。
  3. 设置业务结果规则,例如要求 processed_records 至少为 1。
  4. 当回执不满足规则时,Crontinel 发送邮件告警;后续通过规则的回执会解决事件。

适用场景

  • Laravel 应用的调度任务和队列监控。
  • 需要区分“进程完成”与“业务完成”的后台任务。
  • 多运行时环境(curl、Node、Python、Sidekiq、GitHub Actions)的统一回执监控。
  • 需要监控 worker 状态、队列深度、失败率的团队。

限制

  • 当前公开的告警渠道仅为邮件,Slack 和 webhook 尚未在公开页面提供,需等待付费账户支持。
  • 付费计划(Starter、Pro、Max)正在筹备中,结账流程和最终使用条款仍在审核。
  • 免费起步,无需信用卡。
  • 部分语言 SDK(如 npm、PyPI、gem)未提供官方包,仅支持通过 HTTP 发送 JSON。
  • 队列深度和 Horizon 新鲜度仅在 Laravel 且上报了该快照时显示。