103.10. 使用 Salesforce Limits API
通过 salesforce:limits
操作,您可以从 Salesforce 获取 API 限制,然后对收到的数据执行操作。salesforce:limits
操作的结果映射到 org.apache.camel.component.salesforce.api.dto.Limits
类,并可在自定义处理器或表达式中使用。
例如,请考虑您需要限制 Salesforce 的 API 使用情况,以便为其他路由保留每日 API 请求的 10%。输出消息的正文包含 org.apache.camel.component.salesforce.api.dto.Limits
对象实例,可与基于内容的路由路由器和基于内容的路由路由器和基于 Spring Expression Language (SpEL) 结合使用,以便在执行查询时选择。
请注意,在 body.dailyApiRequests.remaining
中保存的整数值乘以 1.0
如何使表达式评估为与浮点算一样的表达式评估,而不包括浮动点,则最终最终产生集成块,从而导致有 0
(消耗一些 API 限制)或 1
(没有 API 限制)。
from("direct:querySalesforce") .to("salesforce:limits") .choice() .when(spel("#{1.0 * body.dailyApiRequests.remaining / body.dailyApiRequests.max < 0.1}")) .to("salesforce:query?...") .otherwise() .setBody(constant("Used up Salesforce API limits, leaving 10% for critical routes")) .endChoice()