Share via


Abhängigkeit und Ausführungsreihenfolge bei asynchronen Vorgängen

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Ein asynchroner Vorgang Vorgang kann von einem anderen asynchronen Vorgang ahängig gemacht werden. Ein abhängiger asynchroner Vorgang Vorgang wird erst ausgeführt, nachdem der Vorgang, von dem er abhängig ist, abgeschlossen ist. Angenommen, wen der asynchroner Vorgang B abhängig vom asynchronen Vorgang A ist, wird Vorgang B erst ausgeführt, nachdem Vorgang a ausgeführt und abgeschlossen wurde. Die Abhängigkeit zwischen asynchronen Vorgängen wird durch Festlegen des AsyncOperation.DependencyToken-Attributs hergstellt, das jeden Zeichenfolgenwert enthalten kann. Alle asynchronen Vorgänge müssen denselben AsyncOperation.DependencyToken-Wert haben.

Die Microsoft Dynamics 365-Plattform legt fest, welcher asynchrone Vorgang abhängig ist, wenn die Vorgänge in der asynchronen Warteschlange erstellt werden. Betrachten Sie z. B. asynchrone Vorgänge namens A, B und C, bei denen B und C erst ausgeführt werden sollen, nachdem A abgeschlossen ist. Um die richtigen Abhängigkeiten einzurichten, muss A in der Warteschlange erstellt werden, gefolgt von B und dann C. Dies ist darauf zurückzuführen, dass die Reihenfolge, in der die Vorgänge erstellt werden, die Reihenfolge ihrer Ausführung bestimmt. In diesem Beispiel haben alle drei asynchronen Vorgängen dieselbe AsyncOperation.DependencyToken. Zur Laufzeit wird A zuerst ausgeführt. Nachdem A abgeschlossen ist, wird B bis zum Abschluss ausgeführt, und anschließendend wird C bis zum Abschluss ausgeführt.

Wenn im vorstehenden Beispiel Vorgang B hinausgeschoben wird, wird Vorgang A ausgeführt, bis er abgeschlossen ist, und Vorgang C wird gesperrt, bis Vorgang B nicht mehr hinausgeschoben und bis zum Abschluss ausgeführt wird. Sie können das Ausführen eines asynchronen Vorgangs zurückstellen, indem Sie das AsyncOperation.PostponeUntil-Attribut verwenden.

Jeder asynchrone Vorgang, dessen AsyncOperation.DependencyToken-Wert null ist, wird unabhängig von allen anderen asynchronen Vorgängen in der Warteschlange ausgeführt. Die Reihenfolge der Ausführung hinsichtlich anderer unabhängiger Vorgänge wird nicht garantiert. Jedoch haben früher erstellte asynchrone Vorgänge eine bessere Chance, vor Vorgängen ausgeführt zu werden, die später erstellt wurden.  Dabei wird vorausgesetzt, dass die Vorgänge nicht verschoben werden und nicht auf den Status "Abgeschlossen" festgelegt werden.

Das Abhängigkeitstoken muss festgelegt werden, wenn der asynchrone Vorgang erstellt wird. Da Microsoft Dynamics 365 asynchrone Vorgänge für Massenvorgänge wie Massen-E-Mais,l Massenlöschung und Imports erstellt, können Sie das Abhängigkeitstoken diese Vorgänge nicht nutzen. Außerdem kann das Abhängigkeitstoken nicht verwendet werden, um die Ausführungsreihenfolge asynchroner registrierter Plug-Ins festzulegen, da der asynchrone Vorgang, der Plug-Ins ausführt, über den Warteschlangen-Manager erstellt wird. Weitere Informationen finden Sie unter Asynchrone Servicearchitektur.

Siehe auch

Asynchroner Service in Microsoft Dynamics 365
Serienmuster in der asynchronen Auftragsausführung

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright