EdgeCron API Docs

Webhook 投递链路

理解 EdgeCron 从触发到投递、重试和死信的核心概念。

EdgeCron 的核心不是“一个 cron 表达式”,而是一条可观察、可重试、可恢复的 Webhook 投递链路。

回调端点

01

触发来源

02

执行任务

03

投递尝试

04

重试任务

05

死信

06

核心对象

Endpoint / 回调端点

投递到哪里

目标 Webhook 地址。它包含回调 URL、方法、请求头、超时、可选签名密钥、重试策略绑定和事件订阅。

Schedule Trigger / 调度触发

什么时候投递

cron 或一次性时间规则。它到点后创建 Task Run;它本身不会直接发起 HTTP 请求。

Event Trigger / 事件触发

为什么投递

命名业务事件,例如 invoice.paid。Endpoint 过滤规则决定哪些目标接收事件,然后 fan-out 创建 Task Run。

Task Run / 执行任务

一次执行实例

由调度、事件 fan-out 或直接 API 调用创建的运行时工作。用于跟踪状态或取消待执行任务。

Delivery Attempt / 投递尝试

一次 HTTP 调用

对 Endpoint 的一次出站请求。它记录状态码、耗时、响应摘要、错误信息、尝试次数和 trace 信息。

Retry Job / 重试任务

一次恢复任务

由可重试的失败投递创建的队列任务。重试策略控制最大尝试次数和退避方式。

一次请求如何流动

01

回调端点

配置 EdgeCron 要调用哪里:URL、方法、请求头、超时、签名密钥、重试策略和事件过滤。

02

触发来源

调度触发、事件发布或直接 API 调用决定为什么以及什么时候开始执行。

03

执行任务

EdgeCron 创建一个绑定 Endpoint 和 payload 的具体运行实例。

04

投递尝试

Worker 发起 HTTP 调用,并记录状态、耗时、响应内容和 request_id。

05

重试任务

可重试失败会根据策略进入固定、线性或指数退避队列。

06

死信

超过最大尝试次数的失败会保留为死信,等待人工检查、重放或补偿。

两种最常见触发

调度触发

你创建 Schedule,设置 cron 或一次性时间。到点后调度器创建 Task Run,Worker 再对 Endpoint 发起 Delivery Attempt。

事件触发

你的系统发布 Event,例如 invoice.paid。EdgeCron 根据 Endpoint 的事件过滤规则做 fan-out,并为每个匹配端点创建 Task Run。

直接任务

你也可以直接创建 Task Run,用于立即投递、延迟一次性投递或补偿业务流程。

运行状态怎么理解

pending / running

Task Run 等待执行或正在执行。此时还不代表目标 Endpoint 已经成功收到请求。

success

目标 Endpoint 返回 2xx,Delivery Attempt 被视为成功,Task Run 可以结束。

failed / retry_scheduled

请求超时、网络错误或可重试状态会进入失败记录,并根据 Retry Policy 安排后续 Retry Job。

dead_letter

重试次数耗尽后进入死信,用于人工排障、手动重放或业务补偿。

不要混淆

  • Endpoint 不是 Event:Endpoint 是投递目标,Event 是触发输入。
  • Schedule 不直接发 HTTP:Schedule 到点后创建 Task Run,Worker 执行投递。
  • Task Run 不是模板:它是一次运行实例,不是可复用任务定义。
  • Delivery Attempt 不是 Task Run:一个 Task Run 可以产生多次投递尝试。

本页目录