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 ab dem nächsten verfügbaren Worker-Thread ausgeführt. Standardmäßig kann Flow Designer bis zur 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 zum Ausführen 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 sich Flows mit höherer Priorität in der Warteschlange befinden. 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 standardmäßigen mittleren Priorität ausgeführt. Zum Beispiel könnte ein Flow mit hoher Priorität ausgeführt werden und dann angehalten werden, um eine Dauer abzuwarten. Wenn der Flow wieder ausgeführt 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 Flow 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, überprüft das System die Anzahl der Flows, die in der Event-Warteschlange auf die Ausführung warten. Wenn in der Event-Warteschlange ein Rückstand von mindestens 100 Flows mit hoher Priorität vorhanden ist, die auf die Ausführung warten, pausiert das System den ausgeführten Flow mit niedriger Priorität. Wenn Sie einen Flow anhalten, bleiben dessen Kontext und Daten erhalten. Ein angehaltener Flow kehrt zur Event-Warteschlange 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 ausführt. In den Designüberlegungen erfahren Sie, wann ein Flow auf eine hohe oder niedrige Priorität festgelegt werden sollte. 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 Flow Designer-Systemeigenschaften.
Schnelle API-Unterstützung
Die Schnell-API-Methode unterstützt keine Flow-Prioritätswerte. Flows, die von der Schnell-API-Methode ausgeführt werden, ignorieren alle zuvor definierten Flow-Prioritätseinstellungen und werden stattdessen mit mittlerer Priorität ausgeführt.
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 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 es, die Flow-Priorität für Flows festzulegen, die angehalten werden müssen
- Behalten Sie Flows, die angehalten werden müssen, bei der standardmäßigen mittleren Priorität bei, da ein Flow, der angehalten wird, seinen Prioritätswert verliert, wenn die Ausführung fortgesetzt wird.
- Verwenden Sie eine hohe Priorität für geschäftskritische Flows
- Begrenzen 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, für Flows mit hohem Volumen eine hohe Priorität festzulegen, da dies die Anzahl der Worker-Threads begrenzt, die zum Ausführen anderer Flows verfügbar sind. Ein Flow mit langer Ausführungszeit und hoher Priorität kann auch die zur 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 und niedriger Priorität aus, damit andere zeitkritische Flows zuerst ausgeführt werden können. Flows mit niedriger Priorität sollten nicht zeitabhängig sein.
- Verwenden Sie für zeitkritische Flows eine mittlere Priorität
- Verwenden Sie die standardmäßige Flow-Priorität, wenn ein Flow im Vergleich zu anderen Flows eine gewisse zeitliche Dringlichkeit aufweist.