Delen via


Afhankelijkheid en uitvoeringsvolgorde in asynchrone bewerkingen

 

Gepubliceerd: januari 2017

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Een asynchrone bewerking kan afhankelijk worden gemaakt van een andere asynchrone bewerking. Een afhankelijke asynchrone bewerking wordt pas uitgevoerd als de bewerking waarvan deze afhankelijk is, volledig is uitgevoerd. Als asynchrone bewerking B bijvoorbeeld afhankelijk is van asynchrone bewerking A, wordt bewerking B pas uitgevoerd nadat bewerking A is uitgevoerd en voltooid. Deze afhankelijkheid tussen asynchrone bewerkingen wordt tot stand gebracht door het kenmerk AsyncOperation.DependencyToken in te stellen. Dit kenmerk kan elke tekenreekswaarde bevatten. Alle afhankelijke asynchrone bewerkingen moeten dezelfde AsyncOperation.DependencyToken-waarde hebben.

Het Microsoft Dynamics 365-platform bepaalt welke asynchrone bewerkingen afhankelijk zijn wanneer de bewerkingen worden gemaakt in de asynchrone wachtrij. Stel dat u drie asynchrone bewerkingen hebt genaamd A, B en C en dat B en C pas moeten worden uitgevoerd nadat A is voltooid. Als u correcte afhankelijkheden wilt instellen, moet A eerst in de wachtrij worden gemaakt, gevolgd door B en dan C. De volgorde waarin bewerkingen worden gemaakt, bepaalt namelijk de volgorde van uitvoering. In dit voorbeeld hebben alle drie de asynchrone bewerkingen dezelfde AsyncOperation.DependencyToken. Tijdens uitvoeringstijd wordt A het eerst uitgevoerd. Als A is voltooid, wordt B helemaal uitgevoerd en daarna wordt C helemaal uitgevoerd.

Als bewerking B in het vorige voorbeeld wordt uitgesteld, wordt bewerking A helemaal uitgevoerd en vervolgens wordt bewerking C geblokkeerd totdat bewerking B niet langer uitgesteld is en helemaal wordt uitgevoerd. U kunt de uitvoering van een asynchrone bewerking uitstellen met het kenmerk AsyncOperation.PostponeUntil.

Alle asynchrone bewerkingen met een AsyncOperation.DependencyToken-waarde van null worden onafhankelijk van alle andere asynchrone bewerkingen in de wachtrij uitgevoerd. De volgorde van uitvoering met betrekking tot andere onafhankelijke bewerkingen is niet gewaarborgd. Asynchrone bewerkingen die eerder zijn gemaakt hebben echter een betere kans om te worden uitgevoerd dan bewerkingen die later zijn gemaakt.  Hierbij wordt ervan uitgegaan dat bewerkingen niet worden uitgesteld en niet worden ingesteld op een status Voltooid.

Het afhankelijkheidstoken moet worden ingesteld wanneer de asynchrone bewerking wordt gemaakt. Aangezien Microsoft Dynamics 365 asynchrone bewerkingen maakt voor bulkbewerkingen zoals bulk-e-mail, bulkverwijdering en import, kunt u het afhankelijkheidstoken niet voor deze bewerkingen gebruiken. Bovendien kan het afhankelijkheidstoken niet worden gebruikt om de uitvoering te ordenen van asynchrone geregistreerde invoegtoepassingen, omdat de asynchrone bewerking die invoegtoepassingen uitvoert, wordt gemaakt door de Wachtrijmanager. Raadpleeg Asynchrone servicearchitectuur voor meer informatie.

Zie ook

Asynchrone service in Microsoft Dynamics 365
Terugkeerpatroon in asynchrone taakuitvoering

Microsoft Dynamics 365

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht