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 Workflow-Studio Kann bis zu die Hälfte der verfügbaren Worker-Threads zum Ausführen von Hintergrund-Flows verwenden. Wenn kein Worker-Thread zum Ausführen eines Flows verfügbar ist, wird der Flow in die Warteschlange gestellt, bis ein Worker-Thread zur Ausführung verfügbar ist.
- Hoch
- Mittel
- Niedrig
Das Festlegen einer Flow-Priorität bestimmt die Reihenfolge, 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 sich Flows mit höherer Priorität in der Warteschlange befinden. Wenn eine große Arbeitswarteschlange ausgeführt werden soll, 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 anhalten. Flows, die nach einer Pause mit der standardmäßigen Priorität „Mittel“ fortgesetzt werden. Beispielsweise könnte ein Flow mit hoher Priorität ausgeführt werden und dann anhalten, um auf eine Dauer zu warten. Wenn der Flow fortgesetzt wird, wird er mit mittlerer Priorität ausgeführt.
Automatisches Anhalten von Flows mit niedriger Priorität
Standardmäßig sucht das System nach Fällen, in denen Flows mit hoher Priorität durch die Ausführung von Flows mit niedrigerer Priorität blockiert werden. Immer wenn ein Flows mit niedriger Priorität länger als zwei Minuten ausgeführt wird, überprüft das System, ob Flows mit höherer Priorität in den letzten fünf Minuten ausgeführt wurden. Wenn in letzter Zeit keine Flows mit hoher Priorität ausgeführt wurden, überprüft das System die Anzahl der Flows, die in der Ereigniswarteschlange auf die Ausführung warten. Wenn ein Backlog von mindestens 100 Flows mit hoher Priorität in der Ereigniswarteschlange auf die Ausführung wartet, hält das System den laufenden Flow mit niedriger Priorität an. Durch das Anhalten eines Flows werden sein Kontext und seine Daten beibehalten. Ein angehaltener Flow kehrt zur Ereigniswarteschlange zurück, 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 ausgeführt. In den Designüberlegungen erfahren Sie, wann ein Flow auf eine hohe oder niedrige Priorität festgelegt werden soll. 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. Siehe Workflow-Studio Flow-Systemeigenschaften Zum Ändern des Werts der Eigenschaft com.Glide.Hub.Pause_low_Priority_Flows_enabled.
Schneller API-Support
Die Quick-API-Methode behält die Prioritätseinstellungen bei. Flows, die mit der Quick API-Methode ausgeführt werden, werden mit derselben Priorität ausgeführt, die zuvor für den Flow definiert wurde.
Design Überlegungen
Befolgen Sie diese Designüberlegungen, wenn Sie die Flow-Priorität festlegen.
- Vermeiden Sie es, alle Flows so festzulegen, dass sie mit hoher Priorität ausgeführt werden
- Verwenden Sie eine Mischung von Prioritäten, anstatt alle Flows auf 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 gewartet werden müssen.
- Vermeiden Sie das Festlegen der Flow-Priorität für Flows, die angehalten werden müssen
- Lassen Sie Flows, die angehalten werden müssen, mit der standardmäßigen mittleren Priorität, da ein Flow, der angehalten wird, seinen Prioritätswert verliert, wenn er wieder ausgeführt wird.
- Verwenden Sie 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 hohe Priorität festzulegen, da dadurch die Anzahl der Worker-Threads eingeschränkt wird, die zum Ausführen anderer Flows verfügbar sind. Ein langjähriger Flow mit hoher Priorität kann auch die zum Ausführen anderer Flows verfügbaren Worker-Threads reduzieren.
- Verwenden Sie niedrige Priorität für Flows mit hohem Volumen
- Führen Sie Flows mit hohem Volumen mit niedriger Priorität aus, damit andere zeitkritische Flows zuerst ausgeführt werden können. Flows mit niedriger Priorität dürfen nicht zeitabhängig sein.
- Verwenden Sie mittlere Priorität für zeitkritische Flows
- Verwenden Sie die Standard-Flow-Priorität, wenn ein Flow im Vergleich zu anderen Flows eine gewisse zeitliche Dringlichkeit hat.