处理有关调用webhook url失败的数据

时间:2012-02-07 17:12:54

标签: webhooks

我的SaaS产品将事件通知发布为webhooks。这个问题是关于在我发布到webhook网址时处理失败案例。

如果没有收到来自URL的200 OK响应代码我发布了事件数据,我将该事件通知标记为失败并开始重试过程。目前,我存储了我必须作为事件数据的一部分发送的数据的ID,并在每次重试时从DB中获取它。

我只是想看看其他人如何处理这个问题?我能想到的另一件事是将实际的有效载荷(以JSON或XML格式)存储在数据库中,并在每次重试时发送。但是,您如何期望事件接收器处理因此而可能出现的数据同步问题?

1 个答案:

答案 0 :(得分:2)

听起来你需要给webhook接收器选择是否在他们的服务注册终端时重新发布数据。我还强烈建议您提供清晰的文档,说明您的服务如何处理不同的响应代码。

可能值得通过电子邮件通知端点管理员同步问题。这是一个很好的,因为他们也可以定期ping自己的服务或POST测试数据。

另外,请考虑一下:当您的服务失败时会发生什么。如果同步很重要,那么您的服务和端点如何解决该问题?

您没有为您发布的数据类型以及您害怕的精确同步问题提供过多的背景信息。你能分享更多吗?

已修改:此处为how MailChimp handles this issue。他们显然和你在同一条船上。

  
    
      

当您发生事件时,我们会向您指定的网址发送HTTP POST请求。如果该URL不可用或响应时间过长(超过15秒),我们将取消该请求并稍后重试。在1小时15分钟的过程中以递增的间隔进行重试。当我们开始收到用户的反馈时,这些时间框架可能会被调整。

             

对于每个事件,我们将根据事件返回各种数据。下面是每个事件的示例数据 - 您也可以使用上面提到的PostBin工具轻松查看。一般来说,您会看到每个事件都有一个类型和一个fired_at字段,以帮助您跟踪事件类型并获取事件的时间戳(格林尼治标准时间!)。