Afhængighed og udførelsesrækkefølge i asynkrone handlinger
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
En asynkron handling kan gøres afhængig af en anden asynkron handling. En afhængig asynkron handling udføres ikke, før den handling, den er afhængig af, er blevet udført. For eksempel hvis den asynkrone handling B er afhængig af den asynkrone handling A, kører handling B ikke, før handling A er udført og fuldført. Denne afhængighed mellem asynkrone handlinger angives ved at indstille attributten AsyncOperation.DependencyToken, som kan indeholde enhver strengværdi. Alle afhængige asynkrone handlinger skal have samme AsyncOperation.DependencyToken-værdi.
Microsoft Dynamics 365-platformen fastlægger, hvilken asynkron handling der er afhængig, når handlingerne oprettes i den asynkrone kø. Overvej for eksempel tre asynkrone handlinger, der kaldes A, B og C, hvor B og C først skal udføres, efter at A er fuldført. For at fastslå de korrekte afhængigheder skal A oprettes i køen først, efterfulgt af B og derefter C. Dette skyldes, at den rækkefølge, som handlingerne oprettes i, fastlægger rækkefølgen af deres udførelse. Alle tre asynkrone handlinger i dette eksempel har samme AsyncOperation.DependencyToken. A udføres først på kørselstidspunktet. Når A er fuldført, udføres B, indtil handlingen er fuldført, og derefter udføres C, indtil handlingen er fuldført.
Hvis handling B i det forrige eksempel udskydes, udføres handling A, indtil den er fuldført, og handling C blokeres, indtil udskydelsen af handling B ophører, hvorefter handlingen fuldføres. Du kan udskyde udførelsen af en asynkron handling ved hjælp af attributten AsyncOperation.PostponeUntil.
En asynkron handling, der har en AsyncOperation.DependencyToken-værdi på null, udføres uafhængigt af alle andre asynkrone handlinger i køen. Der er ingen garanti for udførelsesrækkefølgen med hensyn til andre uafhængige handlinger. Asynkrone handlinger, der er oprettet tidligere, har dog en større chance for at udføre før-operationer, der oprettes senere. Dette forudsætter, at handlingerne ikke udsættes og ikke angives til tilstanden fuldført.
Afhængighedstokenet skal angives, når den asynkrone handling oprettes. Da Microsoft Dynamics 365 opretter asynkrone handlinger for massehandlinger som f.eks. masseforsendelse af mails, massesletning og import, kan du ikke gøre brug af afhængighedstokenet til disse handlinger. Desuden kan afhængighedstokenet ikke bruges til at angive rækkefølge for kørsel af asynkrone registrerede plug-ins, da den asynkrone handling, der kører plug-ins, oprettes af køstyringen. Du kan finde flere oplysninger under Asynkron tjenestearkitektur.
Se også
Asynkron tjeneste i Microsoft Dynamics 365
Gentagelsesmønsteret i udførelse af asynkrone job
Microsoft Dynamics 365
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret