为什么 Autodesk Forge Model Derivative webhook 会触发多次?

Why is the Autodesk Forge Model Derivative webhook firing multiple times?

我正在使用 Autodesk Forge - 模型衍生服务将 Revit (.rvt) 文件转换为 IFC 和 SVF 格式。为了在这些转换完成时收到通知,我使用 Autodesk 为此目的创建的 webhooks 系统设置了一个 webhook。

现在,当转换完成后,webhook 成功地向我给定的回调 URL 发送了一个请求,但它发送了不止一次。甚至它触发的次数也不是恒定的。它只是在一分钟内触发了两次 webhook,然后在十分钟后再次触发。这可能是什么原因?

问题是,第一次触发 webhook 时,我什至无法完全访问已完成的衍生品(我还无法加载层次结构和属性)。这似乎是 Autodesk 方面的问题,但我想知道是否还有其他人遇到过这个问题。

这是我创建的 webhook,也是我帐户中唯一的一个:

  "links": {
    "next": null
  },
  "data": [
    {
      "hookId": "<<hook id>>",
      "tenant": "jobstarted",
      "callbackUrl": "<<my url>>/callback",
      "createdBy": "2UbAPVbvWGfLAPHWLZD7Mld0bVRpI8aJ",
      "event": "extraction.finished",
      "createdDate": "2019-07-29T09:06:46.971+0000",
      "system": "derivative",
      "creatorType": "Application",
      "status": "active",
      "scope": {
        "workflow": "jobstarted"
      },
      "urn": "<<hook urn>>",
      "__self__": "/systems/derivative/events/extraction.finished/hooks/<<hook id>>"
    }
  ]
}

我期望的是 webhook 只触发一次,所以我相信我可以访问、下载和使用整个衍生产品的数据。目前它只是不可靠。

这种行为通常发生在我们的服务没有收到您端对回调的成功响应时。尝试将回调转移到第三方服务(例如 ngrok)并记录它们以隔离问题。并查看 here 了解更多详情:

Webhooks guarantees at least once delivery. When the event occurs, the webhooks service sends a payload to the callback URL as an HTTP POST request. The webhook service expects a 2xx response to the HTTP POST request. The response must be received within 6 seconds. A non-2xx response is considered an error. In the event of an error, the webhook service will retry immediately, in 15 minutes, and 45 minutes thereafter. The webhook service retries for 48 hours and disables the webhook if the callback does not succeed during this time. You may need to reconfigure your webhooks if they are disabled.