288.6. Using 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
对象,它们可与 Content Based Router 和 Content Based Router 和 Spring Expression Language (SpEL) 结合使用,以便在执行查询时选择。
请注意,在 正文中保留的整数值多了 1.0。dailyApiRequests.remaining
使表达式评估为浮点 arithtic (不使用它)的 - 它最终会得到一个完整的、由 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()