Sperren WorkflowAktivität

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 2 Minuten Lesedauer
  • Die Sperren Die Aktivität verhindert, dass andere Instanzen dieses Workflows über diese Aktivität hinaus fortgesetzt werden, bis die Sperre aufgehoben wird.

    Mehrere Instanzen desselben Workflows können gleichzeitig ausgeführt werden. Beispiel: Wenn ein Workflow ausgelöst wird, wenn ein Datensatz einer bestimmten Tabelle hinzugefügt wird. Dieser Workflow wird mehrmals ausgelöst, wenn mehrere Datensätze nacheinander hinzugefügt werden, einmal durch jedes Einfügen des Datensatzes. Sie können die Sperraktivität verwenden, um sicherzustellen, dass diese Instanz des Workflows eine oder mehrere Aktivitäten abgeschlossen hat, bevor eine andere Instanz des Workflows fortfahren kann.

    Ein Workflow kann explizit eine Sperre mit aufheben Entsperren Aktivität. Die Sperre kann auch aufgehoben werden, wenn Max. Dauer Ist erreicht.

    Wenn eine Instanz des Workflows erreicht Sperren Aktivität: Versucht, eine Sperre mit dem in der Sperraktivität angegebenen Schlüssel abzurufen. Wenn eine andere Instanz die Sperre bereits erhalten und noch nicht freigegeben hat, schlägt dieser Sperrversuch fehl. Die Instanz versucht, die Sperre bis abzurufen Max. Versuche Wurde erreicht.

    Hinweis:

    Wir empfehlen, vor der Sperraktivität eine 1-Sekunden-Timer-Aktivität zu platzieren. Dies hilft, eine seltene Bedingung zu verhindern, unter der die Sperraktivität möglicherweise keine Workflow-Instanz von einer anderen unterscheiden kann. Diese Bedingung kann auftreten, da die Entität, die die Sperre besitzt, nicht die spezifische Workflow-Instanz ist, sondern der Codeausführungs-Thread, in dem diese Instanz ausgeführt wird. In den meisten Fällen wird jede Workflow-Instanz auf einem anderen Thread ausgeführt. Durch das Hinzufügen einer Timer-Aktivität wird sichergestellt, dass dies der Fall ist.

    Abbildung : 1. Beispiel für Sperraktivität mit vorangegangener Timer-Aktivität
    Workflow mit Timer-Aktivität vor Sperraktivität
    Seit a Sperren Aktivität kann die Verarbeitung anderer Workflow-Instanzen nur vorübergehend verhindern. Fügen Sie keine Aktivitäten hinzu, die dazu führen, dass der Workflow zwischen wartet Sperren Und Entsperren Aktivitätsblock. Dies kann dazu führen Entsperren Aktivität, damit die Sperre nicht abgerufen werden kann, um sie freizugeben, und stattdessen 60 Sekunden in Anspruch nehmen kann. Zu den eingeschränkten Warteaktivitäten gehören:
    • Genehmigungsaktivitäten
    • Aufgabenaktivitäten
    • Timer-Aktivitäten
    • Warten Sie auf Bedingungsaktivität
    • Warten Sie auf WF-Ereignisaktivität
    • MID-Serveraktivitäten wie ein PowerShell-Skript

    Ergebnisse

    Tabelle : 1. Aktivitätsergebnisse sperren
    Ergebnis Beschreibung
    Erfolg Die Aktivität hat erfolgreich eine Sperre erhalten. Diese Instanz des Workflows kann über diesen Punkt hinaus fortgesetzt werden, andere Instanzen können jedoch erst fortfahren, wenn die Sperre freigegeben wird.
    Fehler Nachdem versucht wurde, die Sperre zu erhalten Max. Versuche Mal, dass die Aktivität die Sperre nicht erhalten konnte.

    Eingabevariablen

    Eingabevariablen bestimmen das anfängliche Verhalten der Aktivität.

    Tabelle : 2. Sperren Sie Aktivitätseingabevariablen
    Feld Beschreibung
    Key Ein eindeutiger Mutex-Schlüssel. Die Entsperren Sie die Aktivität Die Aktivität verwendet diesen Schlüssel, um die Sperre freizugeben.
    Dauer
    Max. Dauer Die maximale Dauer der Sperre. Die Sperre wird freigegeben, nachdem sie diese Dauer erreicht hat. Wenn Sie eine Sperre auf diese Weise freigeben, ist dies gleichbedeutend mit der Ausführung von Entsperren Aktivität.
    Sperrversuche

    Geben Sie an, wie sich die Aktivität verhält, wenn der Sperrversuch abgelehnt wird. Wenn der endgültige Sperrversuch fehlschlägt, wird der Aktivitätsstatus auf „Zeitüberschreitung“ und das Aktivitätsergebnis auf „Fehlgeschlagen“ festgelegt.

    Max. Versuche Geben Sie an, wie oft die Aktivität maximal versuchen kann, die Sperre abzurufen.
    Verzögerung zwischen Versuchen Die Zeit, die nach einem fehlgeschlagenen Sperrversuch erforderlich ist, bevor ein weiterer Sperrversuch zulässig ist.

    Status

    Der Aktivitätsstatus teilt der Workflow-Engine mit, was mit der Aktivität zu tun ist.

    Tabelle : 3. aktivitätsstatus sperren
    Status Beschreibung
    Warten Die Workflow-Engine wartet auf eine Sperre.
    Fertig Die Aktivität hat die Sperre erfolgreich erhalten.
    Zeitüberschreitung Die Aktivität konnte innerhalb der von angegebenen Anzahl von Versuchen keine Sperre erhalten Max. Versuche Eingabevariable.