경비 승인을 위한 Durable Functions 워크플로를 구현합니다. 오케스트레이터는 관리자의 승인을 최대 48시간 동안 기다린 다음 진행해야 합니다. 48시간 이내에 승인이 수신되지 않으면 자동으로 거부하고 알림을 보내야 합니다. 솔루션은 재시작 및 재생에 탄력적이어야 합니다. 오케스트레이터에 무엇을 구현해야 합니까?
정답 선택
옵션을 탭하여 정답을 확인하세요.
정답: 외부 이벤트(예: "Approved")를 기다리고 48시간 동안 내구성 있는 타이머를 생성하고, Task.WhenAny(eventTask, timerTask)를 기다리고, 승인이 먼저 도착하면 타이머를 취소하고, 그렇지 않으면 거부로 진행합니다..
이것이 정답인 이유
정답은 Durable Functions의 내구성 있는 타이머와 외부 이벤트 대기 기능을 활용하여 비동기 승인 워크플로를 구현하는 가장 견고한 방법입니다. Task.WhenAny를 사용하면 승인 이벤트와 타이머 중 먼저 완료되는 것을 처리할 수 있습니다. 승인이 먼저 도착하면 타이머를 취소하여 불필요한 시간 초과 처리를 방지합니다. 이 방식은 Durable Functions의 재시작 및 재생 특성에 완벽하게 부합하며, 장기 실행 작업에 대한 상태를 안정적으로 유지합니다. 다른 옵션들은 다음과 같은 이유로 적합하지 않습니다. 활동 함수에서 데이터베이스를 폴링하는 것은 비효율적이며, Durable Functions의 오케스트레이터가 아닌 활동 함수에서 Thread.Sleep을 사용하는 것은 오케스트레이터의 재생 모델과 충돌하지 않지만, 폴링 자체는 리소스 낭비입니다. 오케스트레이터에서 Thread.Sleep을 사용하는 것은 결정적이지 않으므로 Durable Functions의 재생 모델을 깨뜨립니다. 오케스트레이터는 항상 동일한 결과를 생성해야 합니다. 큐 메시지의 비가시성 지연은 시간 초과를 시뮬레이션하는 데 사용될 수 있지만, Durable Functions의 내구성 있는 타이머보다 복잡하고 직접적이지 않은 해결책입니다.
끝없는 정답 찾기 없이 시험 합격
이 시험에 대한 모든 검증된 문제와 설명을 한곳에서 얻고, 준비 시간을 몇 시간 절약하세요. 1,000개 이상의 자격증 · 20개 이상의 언어 · 무료로 시작.
더 빠르게 시험 합격 → 카드 필요 없음