Flow-Priorität
Geben Sie die Priorität an, die ein Hintergrund-Flow in Bezug auf andere Flows haben soll, die auf die Ausführung warten. Führen Sie eine Gruppe von Flows mit höherer Priorität aus, bevor Sie Flows mit niedrigerer Priorität ausführen.
Sie können eine Flow-Priorität nur für Flows festlegen, die im Hintergrund ausgeführt werden. Hintergrund-Flows werden vom nächsten verfügbaren Worker-Thread ausgeführt. Standardmäßig kann Workflow-Studio bis zur Hälfte der verfügbaren Worker-Threads verwenden, um Hintergrund-Flows auszuführen. Wenn kein Worker-Thread zum Ausführen eines Flows verfügbar ist, wird der Flow in die Warteschlange gestellt, bis ein Worker-Thread zum Ausführen des Flows verfügbar ist.
- Hoch
- Mittel
- Niedrig
Durch das Festlegen einer Flow-Priorität wird die Reihenfolge bestimmt, in der Worker-Threads Flows aus der Warteschlange auswählen. Worker-Threads führen mehrere Flows mit höherer Priorität aus, bevor ein Flow mit niedrigerer Priorität ausgeführt wird. Dieses Prioritätsschema stellt sicher, dass einige Flows mit niedrigerer Priorität ausgeführt werden, auch wenn Flows mit höherer Priorität in der Warteschlange vorhanden sind. Wenn eine große Arbeitswarteschlange ausgeführt werden muss, müssen die meisten Flows mit niedriger Priorität warten, bis die Flows mit hoher Priorität ausgeführt werden. Nachdem die Flows mit hoher Priorität ausgeführt wurden, können die Worker-Threads Flows mit niedrigerer Priorität ausführen.
Flows verlieren auch ihren Prioritätswert, wenn sie aus irgendeinem Grund angehalten werden. Flows, die aus einer Pause fortgesetzt werden, werden mit der Standardpriorität „Mittel“ ausgeführt. Beispielsweise könnte ein Flow mit hoher Priorität ausgeführt werden und dann angehalten werden, um auf eine Dauer zu warten. Wenn der Flow wieder ausgeführt wird, wird er mit mittlerer Priorität ausgeführt.
Automatisches Pausieren von Flows mit niedriger Priorität
Standardmäßig sucht das System nach Fällen, in denen Flows mit hoher Priorität durch ausgeführte Flows mit niedrigerer Priorität blockiert werden. Wenn ein Vorgang mit niedriger Priorität länger als zwei Minuten ausgeführt wird, prüft das System, ob in den letzten fünf Minuten Flows mit höherer Priorität ausgeführt wurden. Wenn in letzter Zeit keine Flows mit hoher Priorität ausgeführt wurden, prüft das System die Anzahl der Flows, die in der Ereignis-Warteschlange auf die Ausführung warten. Wenn in der Ereigniswarteschlange ein Backlog von mindestens 100 Flows mit hoher Priorität auf die Ausführung wartet, hält das System den laufenden Flow mit niedriger Priorität an. Durch das Anhalten eines Flows bleiben dessen Kontext und Daten erhalten. Ein angehaltener Flow wird an die Ereigniswarteschlange zurückgegeben, um ausgeführt zu werden, wenn ein Worker zur Verarbeitung verfügbar ist.
Wenn Ihre Flows mit niedriger Priorität nicht wie erwartet ausgeführt werden, überprüfen Sie die Anzahl der Flows mit hoher Priorität, die Ihr System generiert und ausführt. In den Designüberlegungen erfahren Sie, wann Sie einen Flow auf eine hohe oder niedrige Priorität festlegen sollten. Wenn Ihre Flows mit niedriger Priorität immer noch nicht ausgeführt werden, können Sie das Anhalten von Flows mit niedriger Priorität mit einer Systemeigenschaft deaktivieren. Informationen zum Ändern des Werts der Eigenschaft com.glide.hub.pause_low_priority_flows_enabled finden Sie unter Workflow-Studio Flow-Systemeigenschaften.
Schnelle API-Unterstützung
Die Schnell-API-Methode behält die Prioritätseinstellungen bei. Von der Schnell-API-Methode ausgeführte Flows werden mit derselben Priorität ausgeführt, die zuvor für den Flow definiert wurde.
Design Überlegungen
Beachten Sie beim Festlegen der Flow-Priorität die folgenden Designüberlegungen.
- Vermeiden Sie es, alle Flows auf eine Ausführung mit hoher Priorität festzulegen
- Verwenden Sie eine Mischung aus Prioritäten, anstatt alle Flows auf eine hohe Priorität festzulegen. Worker-Threads verwenden die relative Priorität zwischen Flows, um Arbeit auszuwählen. Wenn alle Ihre Flows mit hoher Priorität ausgeführt werden, gibt es keine Flows mit niedrigerer Priorität, die warten müssen.
- Vermeiden Sie das Festlegen der Flow-Priorität für Flows, die angehalten werden müssen
- Flows, die angehalten werden müssen, mit standardmäßiger mittlerer Priorität, da ein angehaltener Flow seinen Prioritätswert verliert, wenn er wieder ausgeführt wird.
- Verwenden Sie eine hohe Priorität für geschäftskritische Flows
- Beschränken Sie die hohe Priorität auf Flows, die einen hohen Geschäftsnutzen haben, selten ausgeführt werden und eine kurze Laufzeit haben. Vermeiden Sie es, Flows mit hohem Volumen auf eine hohe Priorität zu setzen, da dies die Anzahl der verfügbaren Worker-Threads für die Ausführung anderer Flows begrenzt. Ein Flow mit langer Laufzeit und hoher Priorität kann auch die Anzahl der für die Ausführung anderer Flows verfügbaren Worker-Threads reduzieren.
- Verwenden Sie eine niedrige Priorität für Flows mit hohem Volumen
- Führen Sie Flows mit hohem Volumen mit niedriger Priorität aus, sodass andere zeitkritische Flows zuerst ausgeführt werden können. Flows mit niedriger Priorität dürfen nicht zeitabhängig sein.
- Verwenden Sie eine mittlere Priorität für zeitkritische Flows
- Verwenden Sie die Standard-Flow-Priorität, wenn ein Flow im Vergleich zu anderen Flows eine zeitliche Dringlichkeit aufweist.