每日整理真实提问 356 个问题 · 726 个回答 需要系统性的技术文档?看 Shopify 技术百科 1000 篇 → 400-873-8117
已解决 提问于 1 个月前

Webhook 失败后会重试几次,48 小时的说法对吗

2 个回答 3,067 次浏览 Webhook 与事件 最后活跃 1 个月前
51

端点挂了两个小时,恢复后发现部分事件永久丢失,不确定 Shopify 的重试策略到底是怎样的。

镇
小镇提问者
Shopify Plus 架构顾问 · 跨境多市场
1 个月前提问 · 已收到 2 个回答

2 个回答

已采纳 · 提问者确认解决
14

先把判断放在前面:失败后按递增间隔重试,总窗口大约 48 小时,超过就不再投递;期间的事件不会补发。

1处理顺序

  1. 端点必须尽快返回 200,业务处理放异步,避免处理慢导致的超时被算作失败。
  2. 对关键事件(订单、退款)另建对账任务,按 updated_at 拉增量,别完全依赖 webhook。
  3. 记录 X-Shopify-Event-Id,重试时用它去重。
  4. 监控投递失败率,超过阈值告警,别等 48 小时后才发现。
  5. 端点部署多副本时确认负载均衡健康检查不会返回非 200。
验收:人为让端点返回 500 后恢复,重试事件能补上;超过窗口的事件由对账任务兜住。
风 风格技术团队 回答于 1 个月前
3

48 小时这个数字会随平台调整,不要写死在代码里。真正可靠的做法是「webhook + 定时对账」双保险。

泽 阿泽 · 前端工程师 · 1 个月前

你的处理方式是什么?

写下你实际验证过的步骤,比「我也有这个问题」有用得多。当前版本为静态展示,提交后会由团队整理并回复。

描述你遇到的现象、店铺环境(主题 / 套餐 / 应用)、已经试过哪些操作……
我要单独提问 工作日 10 分钟内回复,可直接加微信 fenggejishu