288.6. Salesforce Limits API 사용

salesforce:limits 작업을 사용하면 Salesforce에서 API 제한을 가져온 다음 수신된 데이터에 대해 작업할 수 있습니다. salesforce:limits 작업의 결과는 org.apache.camel.component.salesforce.api.dto.Limits 클래스에 매핑되며 사용자 지정 프로세서 또는 식에서 사용할 수 있습니다.

예를 들어, 일별 API 요청의 10%가 다른 경로에 남아 있도록 Salesforce의 API 사용을 제한해야 합니다. 출력 메시지의 본문에는 쿼리를 실행할 시기를 선택하는 콘텐츠 기반 라우터 및 콘텐츠 기반 라우터 및 SpEL (SpEL) 과 함께 사용할 수 있는 org.apache.camel.salesforce.api.dto.Limits 오브젝트의 인스턴스가 포함되어 있습니다.

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()