1

我有一个 python 网络应用程序,它使用 HERE Maps Routing API (V8) 来获得大约。一口气走10-20条路线。定期,我收到一个 HTTP 429 响应,说“请求太多:已达到此服务的速率限制”。对 API 的请求是异步调用的,但我根据免费增值计划限制 ( https://developer.here.com/pricing#plan-details )设置了每秒 10 个请求的速率限制。

有没有人能够确认实际的速率限制是什么,或者如何避免这个错误?

谢谢!

4

1 回答 1

0

使用 HERE REST API 提供的位置功能时,您应该优化应用程序以限制速率。根据您的计划和您使用的服务;当服务利用率很高时,您的客户端发出的 API 请求率可能会受到限制。

我如何知道我的请求是否会受到限制?

  • 虽然这取决于您的计划和您使用的服务,但最好确保您的应用程序在任何情况下都经过优化,以便在发生速率限制时处理它。

发生速率限制时会发生什么?

  • 当请求有速率限制时,响应状态码将为 HTTP 429 Too Many Requests

建议的优化方法:指数退避

虽然有不同的方法可以优化速率限制,但我们建议使用指数退避算法,因为它是一种常见且直接的方法。具体实现将取决于您的应用程序。以下是对这种方法的总结:

  • 在向服务发送请求时检查 HTTP 429 响应状态代码。
  • 收到 HTTP 429 状态时,请等待设定的时间(通常为一秒),然后再发出下一个请求。
  • 继续发送请求。如果再次发生速率限制,则通过将等待时间增加一些因素来回退。
  • 以指数方式增加回退时间因子,直到请求不再受到速率限制。
于 2021-12-15T07:44:10.693 回答