ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

minicron API接口参考:如何用API Key自动化管理定时任务与执行记录

minicron API接口参考:如何用API Key自动化管理定时任务与执行记录 minicron API接口参考如何用API Key自动化管理定时任务与执行记录【免费下载链接】minicron️ Monitor your cron jobs项目地址: https://gitcode.com/gh_mirrors/mi/minicronminicron 是一个轻量级的cron 定时任务监控工具它通过 API 接口让你用API Key就能自动上报定时任务的执行过程并在 Web 端保留完整的执行记录与历史数据。本文带你快速掌握 minicron 的全部 API 接口、统一响应格式以及最常见的认证方式5 分钟即可把自己的定时任务接入监控。1. minicron 是怎么工作的minicron 由两部分组成组件说明源码位置服务端HubWeb UI REST API存储任务、主机与执行记录server/lib/minicron/hub/app.rb客户端Client部署在目标服务器上执行命令并回传数据client/run/run.go每次任务运行时客户端会按「初始化 → 开始 → 上报输出 → 完成 → 退出」的固定顺序调用服务端 API服务端据此生成一条可查询的执行记录。所有接口定义都集中在 server/lib/minicron/hub/controllers/api/executions.rb 中。2. 准备工作获取你的 API Key ⚙️API Key 的获取非常简单在 Web 端完成注册系统会自动为你的账号生成一个 64 位的随机密钥见 server/lib/minicron/hub/controllers/auth.rb 中SecureRandom.urlsafe_base64(48)的生成逻辑登录控制台在个人资料页面即可查看并复制你的 API Key该页面由 user/profile/index.erb 渲染密钥在数据库中按用户唯一索引存储定义见 server/db/schema.rb。调用任意 API 时只需在请求头中携带密钥即可curl -X POST http://你的服务端地址/api/1.0/execution/init \ -H X-API-Key: 你的API密钥 \ -H Content-Type: application/json \ -d {hostname:web-01,command:mysqldump db backup.sql,timestamp:1700000000}服务端会校验该请求头认证逻辑位于 server/lib/minicron/hub/middleware/auth.rb。如果密钥缺失或错误接口会直接返回401 状态码和{error: Invalid API credentials}。3. 五个核心接口一览 所有接口均为POST方法基础路径为/api/1.0/且都返回统一的 JSON 结构。接口路径作用初始化执行/api/1.0/execution/init登记一次新的任务执行返回执行 ID开始执行/api/1.0/execution/start记录任务开始时间上报输出/api/1.0/execution/output逐条上报标准输出供 Web 端查看完成执行/api/1.0/execution/finish记录任务结束时间退出并判定成败/api/1.0/execution/exit上报退出码失败时自动触发告警4. 逐个接口详解 4.1 初始化执行init这是每次任务运行的第一步。服务端会做三件事自动识别主机按hostname查找你的主机不存在则自动创建自动识别任务对命令做哈希存在则复用不存在则新建任务创建执行记录自动递增执行编号第 1 次、第 2 次……并返回execution_id供后续接口使用。注意如果被监控的任务在 Web 端被禁用了接口会返回 500 并附带Refusing to execute disabled job的提示信息逻辑见 executions.rb 第 32-35 行。4.2 开始执行start传入execution_id和 Unix 时间戳服务端将把任务的started_at字段更新为开始时间用于后续统计任务时长。4.3 上报输出output这是产生「执行记录」内容的接口。每产生一行输出就调用一次参数包括execution_id所属执行记录output该行文本内容seq序号timestamp产生时间。Web 端查看历史执行详情时展示的终端风格输出正是来自这些记录对应的数据模型为 server/lib/minicron/hub/models/job_execution_output.rb。4.4 完成执行finish上报finished_at时间戳。start与finish两个时间戳之差就是 Web 端展示的任务耗时。4.5 退出判定exit关键接口✅最后一步。上报exit_status退出码退出码 0任务成功记录为绿色成功状态退出码 0任务失败服务端立即调用告警模块按你在 Web 端配置的渠道Email、SMS、Slack、PagerDuty、AWS SNS 等实现见 server/lib/minicron/alert/发出失败通知。这就是 minicron「定时任务失败自动告警」能力在 API 层的入口见 executions.rb 第 183-191 行。5. 统一响应格式 所有接口返回结构一致解析时先看success字段即可{ body: { execution_id: 123 }, success: true, error: { message: null } }body业务数据仅init接口有值success布尔值true表示调用成功error.message失败时给出具体的错误描述成功时为null。6. 更省事的方案直接用 minicron 客户端 如果你不想自己写代码逐个调用接口minicron 官方客户端已经封装好了完整流程封装逻辑见 client/api/api.go只需一条命令minicron --api-key 你的密钥 run mysqldump db backup.sql常用全局参数定义见 client/commands/root.go参数简写说明--api-key-k你的 API 密钥--api-base-b服务端 API 基础地址--verbose-v输出详细日志排查问题必备--debug-d调试模式客户端还会自动带上--dry-run干跑模式方便在不回传服务端的情况下测试命令是否可用。7. 常见问题 FAQ ❓Q1返回 401 Invalid API credentials 怎么办检查请求头是否为X-API-Key注意名称区分大小写并确认密钥在个人资料页复制完整、未包含多余空格。Q2为什么 init 接口返回 500最常见原因是该任务在 Web 端被禁用。到任务编辑页重新启用即可编辑入口对应 server/lib/minicron/hub/controllers/jobs.rb。Q3执行记录会保留多久执行记录由服务端持久化存储支持在 Web 端查看任意历史执行的状态、耗时与完整输出这也是 minicron 相比原生 cron 的核心优势——原生 cron 的日志往往转瞬即逝。Q4时间戳格式是什么所有timestamp字段均为Unix 秒级时间戳如1700000000服务端会将其转换为 UTC 时间存储。写在最后至此minicron 的 API 接口已全部介绍完毕init登记、start/finish计时、output留痕、exit判定成败并触发告警。配合 API Key 认证你既可以调用官方客户端一行命令接入也可以基于这 5 个接口为自己搭建任意语言Python、Shell、Go 等的自动化上报脚本让每台机器上的定时任务都「有记录可查、有失败可警」。【免费下载链接】minicron️ Monitor your cron jobs项目地址: https://gitcode.com/gh_mirrors/mi/minicron创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表