54.9. CloudEvent 제한 API 사용
salesforce:limits 작업을 사용하면 CloudEvent에서 API 제한을 가져온 다음 해당 데이터를 처리할 수 있습니다. salesforce:limits 작업의 결과는 org.apache.camel.component.salesforce.api.dto.Limits 클래스에 매핑되며 사용자 지정 프로세서 또는 표현식에서 사용할 수 있습니다.
예를 들어, 다른 경로에 대해 일별 API 요청의 10%가 남아 있도록 CloudEvent의 API 사용을 제한해야 한다고 가정합니다. 출력 메시지 본문에는 쿼리 수행 시기를 선택할 수 있는 org.apache.camel.component.salesforce.api.dto.Limits 오브젝트의 인스턴스가 콘텐츠 기반 라우터 및 콘텐츠 기반 라우터 및 SpEL(Content Based Router and Spring Expression Language) 과 함께 사용할 수 있습니다.
1.0 을 body.dailyApiRequests.remaining 에 보유하고 있는 정수 값으로 곱하는 방식은 표현식을 부동 소수점 연산과 함께 만드는 것입니다. 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()