首页 > 解决方案 > SalesForce Rest API 调用每小时限制

问题描述

我有一个批处理过程,它会调用很多 rest api 来更新 SalesForce 记录。Rest api 调用在一段时间后开始失败,并出现以下错误。我确实检查了我帐户的 API 限制,并且可以确认我完全在 24 小时 API 限制范围内。

API 调用是否也有每小时限制?我尝试搜索 SalesForce 文档,但在任何地方我都只看到提到 24 小时限制。我找不到每小时的任何限制。

{
  “errorCode”: “REQUEST_LIMIT_EXCEEDED”,
  “message”: “You have reached the Connect API’s hourly request limit for this user and application.  Please try again later.”
} 

标签: salesforce

解决方案


您尚未达到 Salesforce API 限制,该限制通常很高。您已达到Chatter REST API的限制,也称为 Connect API。此 API 具有每个用户、每个应用程序、每小时的请求限制:

Chatter REST API 请求受速率限制。Chatter REST API 的速率限制与其他 Salesforce API 不同。Chatter REST API 具有每个用户、每个应用程序、每小时的速率限制。当您超过速率限制时,所有 Chatter REST API 资源都会返回 503 Service Unavailable 错误代码。

链接文档有一些避免此速率限制的建议:

  • 如果您在运行测试时遇到限制,请使用多个用户来模拟真实场景。
  • 轮询提要更新时,不要超过每分钟一次轮询(每小时 60 次轮询)。要在 1 个请求中返回更多结果,请增加页面大小。
  • 轮询私人消息时,每小时轮询次数不要超过 60 次。
  • 为避免发出多个请求,请缓存已计量的静态资产,例如文件和仪表板再现(不计量组和用户个人资料图片)。
  • 团队中的每个开发人员都应设置 2 个连接的应用程序:一个用于自动测试,一个用于手动测试和开发。不要与其他开发者共享连接的应用程序。
  • 为生产环境使用独特的连接应用程序。
  • 不要在应用程序之间共享连接的应用程序。

查看Chatter REST API 资源列表以确定您调用的内容受这些增强限制的约束。


推荐阅读