节流等待时间不返回
On throttling time to wait is not returned
我正在为 OneNote 使用 Microsoft Graph。我观察到这些端点几乎没有问题。有时,当同时调用 API 时,会抛出限制异常 (HTTP 429
)。突然下一个 API 调用 returns 成功响应。
根据 documentation,当节流处于活动状态时,Retry-After
字段将在响应 header 中与 HTTP 429
一起返回,但我从未在响应 header。
还有其他方法可以获取等待时间吗?
我应该等多久才能进一步避免这个问题?这对我来说是一个障碍问题。请帮忙。
文档应该更清楚,并注意并非所有端点 return 和 Retry-After
。这是因为并非所有端点都使用相同的规则进行限制。
某些端点(例如 Exchange)会根据查看 window 时间内请求数量的公式进行限制。这些端点以 Retry-After
响应,以提醒您在拥有新的 window 之前必须等待多长时间。
其他端点只是根据并发请求数进行限制。 OneNote 是这些端点之一。它不会随着时间的推移查看请求,它只是将您限制为最多 5 个并发调用。由于节流不依赖于时间,因此不可能提供 Retry-After
值。
这也是为什么您如此频繁地看到您的初始重试成功的原因,这意味着之前的一些调用已经完成并且现在有 5 个或更少的并发请求。
https://blogs.msdn.microsoft.com/onenotedev/2016/01/12/onenote-api-throttling-and-how-to-avoid-it/
此博客 post 包含有关如何避免 OneNote 端点限制(及其工作原理)的更多信息。
我正在为 OneNote 使用 Microsoft Graph。我观察到这些端点几乎没有问题。有时,当同时调用 API 时,会抛出限制异常 (HTTP 429
)。突然下一个 API 调用 returns 成功响应。
根据 documentation,当节流处于活动状态时,Retry-After
字段将在响应 header 中与 HTTP 429
一起返回,但我从未在响应 header。
还有其他方法可以获取等待时间吗?
我应该等多久才能进一步避免这个问题?这对我来说是一个障碍问题。请帮忙。
文档应该更清楚,并注意并非所有端点 return 和 Retry-After
。这是因为并非所有端点都使用相同的规则进行限制。
某些端点(例如 Exchange)会根据查看 window 时间内请求数量的公式进行限制。这些端点以 Retry-After
响应,以提醒您在拥有新的 window 之前必须等待多长时间。
其他端点只是根据并发请求数进行限制。 OneNote 是这些端点之一。它不会随着时间的推移查看请求,它只是将您限制为最多 5 个并发调用。由于节流不依赖于时间,因此不可能提供 Retry-After
值。
这也是为什么您如此频繁地看到您的初始重试成功的原因,这意味着之前的一些调用已经完成并且现在有 5 个或更少的并发请求。
https://blogs.msdn.microsoft.com/onenotedev/2016/01/12/onenote-api-throttling-and-how-to-avoid-it/
此博客 post 包含有关如何避免 OneNote 端点限制(及其工作原理)的更多信息。