다음을 통해 공유


비동기 작업의 종속성 및 실행 순서

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

비동기 작업은 다른 비동기 작업에 종속될 수 있습니다. 종속 비동기 작업은 이 작업이 종속된 작업의 실행을 마칠 때까지 실행되지 않습니다. 예를 들어 비동기 작업 B가 비동기 작업 A에 종속되면 작업 A가 실행되고 완료될 때까지 작업 B는 실행되지 않습니다. 비동기 작업 간의 이 종속성은 AsyncOperation.DependencyToken 특성을 사용하여 설정되며, 문자열 값을 포함할 수 있습니다. 종속 비동기 작업에는 동일한 AsyncOperation.DependencyToken 값이 있어야 합니다.

Microsoft Dynamics 365 플랫폼은 작업이 비동기 큐에서 만들어지면 종속되는 비동기 작업을 설정합니다. 예를 들어 A, B 및 C라는 세 가지 비동기 작업이 있다고 가정합니다. 여기서 B와 C는 A가 완료된 후에만 실행해야 합니다. 올바른 종속성을 설정하려면 A는 큐에서 가장 먼저 만들어지고, 그 뒤에 B와 C가 만들어져야 합니다. 작업이 만들어지는 순서가 실행 순서를 결정하기 때문입니다. 이 예제에서 세 가지 비동기 작업에는 모두 동일한 AsyncOperation.DependencyToken이 있습니다. 런타임에 A가 먼저 실행됩니다. A가 완료되면 B가 실행되고 완료되면 C가 완료될 때까지 실행됩니다.

앞의 예제에서 작업 B가 연기되면 작업 A는 완료될 때까지 실행되고, 작업 B가 더 이상 연기되지 않고 완료될 때까지 실행되면 작업 C가 차단됩니다.AsyncOperation.PostponeUntil 특성을 사용하여 비동기 작업의 실행을 연기할 수 있습니다.

AsyncOperation.DependencyToken 값이 null인 비동기 작업은 큐에서 모든 비동기 작업에 관계 없이 실행됩니다. 다른 독립 작업과 관련된 실행 순서는 보장되지 않습니다. 그러나 이전에 만든 비동기 작업은 나중에 만들어진 작업 이전에 실행될 가능성이 높습니다.  이는 작업이 연기되지도 않고 완성된 상태로 설정되지도 않았다고 가정합니다.

비동기 작업을 만들 때 종속성 토큰을 설정해야 합니다. 대량 전자 메일, 대량 삭제 및 가져오기와 같이 대량 작업에 대해 Microsoft Dynamics 365에서 비동기 작업을 만들므로 이러한 작업에 대해 종속성 토큰을 사용하도록 만들 수 없습니다. 또한 플러그 인을 실행하는 비동기 작업은 큐 관리자에서 만들어지므로 종속성 토큰은 등록된 비동기 플러그 인의 실행 순서를 지정하는 데 사용할 수 없습니다. 자세한 내용은 비동기 서비스 아키텍처를 참조하십시오.

참고 항목

Microsoft Dynamics CRM 2015의 비동기 서비스
비동기 작업 실행의 되풀이 패턴

© 2017 Microsoft. All rights reserved. 저작권 정보