asp.net MVC 웹 응용 프로그램 내에서 코드 호출을 제한하는 방법에 대한 조언이 필요합니다. 우리는 Salesforce에 호출하는 것과 관련된 복잡한 작업을 처리하는 클래스가 있습니다. ComplexSfLogic.cs
이라고합시다.동시 호출을 줄이기위한 최선의 방법
Salesforce는 한 번에 최대 10 개의 동시 요청을 처리 할 수 있으며 논리가 복잡하고 사용자 수가 많기 때문에이 한도에 맞서고 있습니다.
은 한 번에 하나씩 리소스에 대한 액세스를 제한하는 데 사용할 수 있지만 한 번에 10 개로 제한하여 10 개가 넘는 동시 발생시 본인 클래스에 대한 호출을 본질적으로 제한하려고합니다.
나는 이것을 coding up a solution으로 처리하는 많은 방법을 생각할 수 있지만 설명하는 것처럼 메서드 호출을 조절할 수있는 최상의 연습 또는 기존 .net 클래스가 있습니다. 가장 큰 문제는 답변을 검색 할 때 올바른 키워드를 사용하지 않아서 어떤 방향으로도 감사 할 것이라고 생각합니다.
나는 ServiceThrottlingBehavior
클래스를 WFC 호출을 직접적으로 제한하는 것으로 보았지만, 어떤 경우에는 복수 호출을하고 함께 그룹화해야하기 때문에 ComplexSfLogic.cs
클래스에서 제한이 필요합니다. 감사!
초기 카운트가 10 인'SemaphoreSlim'? – EZI
이것은 디자인 문제처럼 보입니다. 우선 SemaphoreSlim을 사용하는 것은 단일 프로세스 내에서만 작동하며 일반 세마포어는 단일 시스템 내에서만 작동하므로이 솔루션은 완전히 확장 불가능합니다. 서버 및 서버에서의 오류 처리가 필요합니다. 또는 더 나은 솔루션은 MSMQ 또는 RabitMQ를 사용하여 대기열을 사용하는 메커니즘 일 수 있습니다. –