Altova FlowForce Server 2025 Advanced Edition

Eine Ausführungswarteschlange dient zum Verarbeiten von Aufträgen. Sie steuert, wie viele Auftragsinstanzen gleichzeitig ausgeführt werden können und wie viel Zeit zwischen den einzelnen Ausführungen verstreichen soll. Mit Hilfe der Warteschlangenkonfiguration können Server-Ressourcen effizienter eingesetzt werden.

 

Sie können eine Warteschlange innerhalb eines Auftrags (lokale Warteschlange) oder als eigenständiges Objekt (globale Warteschlange) definieren. Bei einer lokalen Warteschlange werden nur die Instanzen des Auftrags, in dem die lokale Warteschlange konfiguriert wurde, verarbeitet. Bei einer globalen Warteschlange können Instanzen eines einzigen Auftrags und Instanzen verschiedener Aufträge verarbeitet werden.

 

Mit Hilfe globaler Warteschlangen können Sie die Server-Auslastung auf einem einzigen FlowForce-Rechner oder in einem Cluster (siehe unten) steuern.

 

Lokale und globale Warteschlangen in einer Cluster-Umgebung (Advanced Edition)

In einem Cluster wird die Verarbeitung auf mehrere Cluster-Mitglieder aufgeteilt: auf einen Master-Rechner und einen oder mehrere Worker-Rechner. Bei einer globalen Warteschlange können Sie ein Cluster-Mitglied auswählen, auf dem der Auftrag ausgeführt werden kann. Dabei kann es sich um einen Master-Rechner oder einen beliebigen Worker-Rechner, nur den Master oder nur einen Worker handeln. Bei lokalen Warteschlangen können Aufträge nur auf dem Master-Rechner und auf keinem anderen Cluster-Mitglied ausgeführt werden.

 

Sicherheit

Für Warteschlangen gelten hinsichtlich sicheren Zugriffs dieselben Einstellungen wie für andere FlowForce Server-Konfigurationsobjekte. Um Warteschlangen erstellen zu können, muss ein Benutzer das Recht zur Definition von Warteschlangen haben, siehe auch Definieren von Benutzern und Rollen. Außerdem können Benutzer Warteschlangen anzeigen und diesen Aufträge zuweisen, wenn sie die entsprechenden Container-Berechtigungen haben (siehe auch Funktionsweise von Berechtigungen. Standardmäßig erhält jeder authentifizierte Benutzer die Berechtigung Warteschlange - verwenden, d.h. er kann Aufträge einer Warteschlange zuweisen.

 

Um den Zugriff auf Warteschlangen einzuschränken, navigieren Sie zum Container, in dem die Warteschlange definiert wurde und ändern Sie die Berechtigung des Containers für die Rolle authenticated in Warteschlange - Kein Zugriff. Weisen Sie als nächstes allen Rollen oder Benutzern, die Sie benötigen, die Berechtigung Warteschlange - verwenden zu. Nähere Informationen finden Sie unter Einschränken des Zugriffs auf den Container /public.

 

 

Informationen zur verteilten Verarbeitung finden Sie unter Cluster. Informationen zur Erstellung von lokalen Warteschlangen und Standalone-Warteschlangen finden Sie in den Unterabschnitten weiter unten.

 

Lokale Warteschlangen

Um eine lokale Warteschlange zu konfigurieren, aktivieren Sie auf der Auftragskonfigurationsseite die Option Lokale Warteschlange definieren und definieren Sie die Einstellungen für die Warteschlange. In der Abbildung unten sehen Sie die Standardeinstellungen für Warteschlangen. Nähere Informationen zu den Eigenschaften Mindestintervall zwischen den Ausführungen und Maximale Anzahl der parallelen Ausführungen finden Sie weiter unten unter Warteschlangeneinstellungen.

ffadv_queue

 

Globale Warteschlangen

Um eine Warteschlange als Standalone-Objekt zu erstellen, gehen Sie folgendermaßen vor:

 

1.Öffnen Sie die Konfigurationsseite und navigieren Sie dann zum Container, in dem eine Warteschlange erstellt werden soll.

2.Klicken Sie auf Erstellen und wählen Sie Warteschlange erstellen (Abbildung unten).

ff_create_queue

3.Geben Sie einen Namen für die Warteschlange und optional eine Beschreibung ein.

4.Konfigurieren Sie die relevanten Einstellungen. Nähere Informationen dazu finden Sie unter Warteschlangeneinstellungen weiter unten.

5.Klicken Sie auf Speichern.

 

Warteschlangeneinstellungen

Im Zusammenhang mit Warteschlangeneinstellungen stehen die unten aufgelisteten Einstellungen zur Verfügung.

 

Warteschlangenname

Dies ist ein obligatorisches Feld, das den Namen der Warteschlange darstellt. Der Name darf nur Buchstaben, Ziffern, einzelne Leerzeichen und die Zeichen Unterstrich (_), Bindestrich (-) und Punkt (.) enthalten. Der Name darf nicht mit Leerzeichen beginnen oder enden.

 

Warteschlangenbeschreibung

Optionale Beschreibung.

 

Ausführen auf (Advanced Edition)

Gibt an, wie alle Auftragsinstanzen aus dieser Warteschlange ausgeführt werden sollen:

 

Master oder beliebigem Worker: Auftragsinstanzen, die Teil dieser Warteschlange bilden, werden je nach Verfügbarkeit der Server-Kerne auf dem Master- oder einem verfügbaren Worker-Rechner ausgeführt.

nur Master: Auftragsinstanzen werden nur auf dem Master-Rechner ausgeführt.

nur beliebigem Worker: Auftragsinstanzen werden auf jedem beliebigen verfügbaren Worker, jedoch niemals auf dem Master-Rechner ausgeführt.

 

Mindestintervall zwischen den Ausführungen

Eine Ausführungs-Warteschlange hat Ausführungs-Slots, wobei die Anzahl der verfügbaren Slots von der Einstellung: Maximale Anzahl der parallelen Ausführungen multipliziert mit der gemäß der gerade aktiven Regel zugewiesenen Anzahl der Worker-Rechner abhängig ist. Mit jedem Slot werden Auftragsinstanzen der Reihe nach ausgeführt.

 

Mit der Einstellung Mindestintervall zwischen den Ausführungen wird ein Slot für kurze Zeit als besetzt markiert, nachdem eine Auftragsinstanz fertig verarbeitet wurde, damit nicht sofort mit der nächsten Auftragsinstanz begonnen wird. Dadurch wird der maximale Durchsatz für diese Ausführungswarteschlange verringert, wodurch die CPU Zeit für andere Ausführungswarteschlangen und Prozesse auf demselben Rechner erhält.

 

Maximale Anzahl der parallelen Ausführungen

Mit dieser Option definieren Sie, wie viele Ausführungs-Slots in einer Warteschlange zur Verfügung stehen. In jedem Slot werden Auftragsinstanzen der Reihe nach ausgeführt, daher wird mit dieser Einstellung festgelegt, wie viele Instanzen desselben Auftrags in der aktuellen Warteschlange parallel ausgeführt werden können. Beachten Sie jedoch, dass alle von Ihnen für die Parallelausführung zugelassenen Instanzen die verfügbaren Rechnerressourcen in Anspruch nehmen. Eine Erhöhung dieses Werts ist eventuell bei Warteschlangen mit schlanken Aufträgen, in denen keine speicherintensiven I/O-Operationen durchgeführt werden bzw. die nicht viel CPU-Zeit beanspruchen, akzeptabel. Der Standardwert (1 Instanz) eignet sich für Warteschlangen, in denen speicherintensive Aufträge verarbeitet werden, um sicherzustellen, dass immer nur eine solche speicherintensive Auftragsinstanz gleichzeitig verarbeitet wird.

 

Diese Option hat keine Auswirkung auf die maximale Anzahl der in FlowForce Server zulässigen parallelen HTTP-Requests (wie z.B. HTTP-Requests von Clients, die als Webservice bereitgestellte Auftrage aufrufen). Nähere Informationen dazu finden Sie unter Umkonfiguration von FlowForce Server Pool Threads.

 

 

Mehrere Gruppen von Warteschlangeneinstellungen (Advanced Edition)

Durch Klicken auf die Schaltfläche add können Sie mehrere Gruppen von Warteschlangeneinstellungen mit unterschiedlichen Verarbeitungsvorgaben definieren. Über die Schaltflächen up_arrow und down_arrowkönnen Sie die Priorität von Warteschlangenkonfigurationen ändern. So können Sie z.B. eine Regel für den Fall definieren, dass nur der Master zur Verfügung steht, und eine andere für den Fall, dass sowohl der Master als auch Worker-Rechner zur Verfügung stehen. Auf diese Art können Sie einen Fallback-Mechanismus für die Warteschlange definieren, falls z.B. ein Cluster-Mitglied nicht mehr zur Verfügung steht.

 

FlowForce überwacht bei der Verarbeitung von Warteschlangen ständig den Zustand des Clusters und seiner Mitglieder. Wenn Sie mehrere Warteschlangeneinstellungsregeln definiert haben, wertet FlowForce diese in der definierten Reihenfolge von oben nach unten aus und wählt die erste Regel aus, der gemäß der Einstellung Ausführen auf mindestens ein Cluster-Mitglied zugewiesen wurde. Nähere Informationen zum Betrieb im Master- und Worker-Modus finden Sie unter Cluster.

 

Beispiel

Nehmen wir z.B. eine Konfiguration, bei der der Cluster aus einem Master- und vier Worker-Rechnern besteht. Es wurden dafür die folgenden Warteschlangeneinstellungen definiert:

ff_queue_settings

Mit der oben dargestellten Konfiguration würde FlowForce die Warteschlange folgendermaßen verarbeiten:

 

Wenn alle Worker zur Verfügung stehen, wird die oberste Regel angewendet. In diesem Fall können bis zu 16 Auftragsinstanzen (4 Instanzen pro Worker) gleichzeitig ausgeführt werden. Das Mindestintervall zwischen den Ausführungen beträgt 0 Sekunden.

Wenn nur drei Worker zur Verfügung stehen, wird weiterhin die oberste Regel angewendet. In diesem Fall können bis zu 12 Auftragsinstanzen gleichzeitig ausgeführt werden. Das Mindestintervall zwischen den Ausführungen beträgt 0 Sekunden.

Wenn keine Worker zur Verfügung stehen, wird die zweite Regel angewendet: In diesem Fall darf nur jeweils 1 Auftragsinstanz ausgeführt werden. Das Mindestintervall zwischen den Ausführungen beträgt 5 Sekunden.

 

Bei dieser Konfigurationsart kann der Auftrag auch dann ausgeführt werden, wenn keine Worker zur Verfügung stehen. Beachten Sie, dass die Regel nur Master etwas strenger ist (nur 1 Instanz und 5 Sekunden Ausführungsintervall) , damit dem Master nicht zu viel Verarbeitungsleistung weggenommen wird, wenn alle Worker ausfallen.

 

Zuweisen von Aufträgen zu Warteschlangen

Nachdem Sie die Warteschlage konfiguriert haben, müssen Sie ihr auf der Auftragskonfigurationsseite einen Auftrag zuweisen. Gehen Sie dazu folgendermaßen vor:

 

1.Öffnen Sie die Konfigurationsseite des Auftrags, den Sie einer Warteschlange zuweisen möchten.

2.Navigieren Sie zu den Warteschlangeneinstellungen am unteren Rand der Seite.

3.Aktivieren Sie die Option Vorhandene Warteschlange auswählen und geben Sie den Pad zum gewünschten Warteschlangenobjekt an (Abbildung unten).

ff_assign_queue

 

 

Priorität in einer Warteschlange (Advanced Edition)

Sie können Aufträgen in einer Warteschlange in der FlowForce Server Advanced Edition eine Priorität zuweisen. Die Priorität wird auf Basis aller einer Warteschlange zugewiesener Aufträge ermittelt. Als Prioritätsstufen stehen die Optionen: Niedrig, Unter normal, Normal, Über normal und Hoch zur Verfügung. Die Standardpriorität ist "Normal". Die Priorität kann für jeden beliebigen Trigger-Typ definiert werden. Wenn für Ihren Auftrag mehrere Trigger konfiguriert wurden, können Sie dafür gegebenenfalls unterschiedliche Prioritätswerte auswählen.

 

Globale Warteschlangen

Die Trigger-Priorität ist vor allem bei globalen Wartenschlangen von Bedeutung, da Sie dadurch festlegen können, welche Aufträge in einer Warteschlange wichtiger sind und zuerst gestartet werden sollen. In den meisten Fällen hat ein Auftrag nur einen Trigger. Ein Auftrag, dessen Trigger eine höhere Priorität hat und dessen Trigger-Bedingungen erfüllt wurden, wird als erster gestartet.

 

Wenn eine globale Warteschlange mehrere Aufträge enthält und jeder davon mehrere Trigger unterschiedlicher Priorität hat, überprüft FlowForce zuerst die Trigger höherer Priorität. Wenn die Trigger-Bedingungen nicht erfüllt wurden, überprüft FlowForce Server die Trigger niedrigerer Priorität. Bei einem Auftrag mit mehreren Triggern ist es meist sinnvoll, für alle diese Trigger denselben Prioritätswert zu definieren (z.B. hohe Priorität, wenn der Auftrag wichtiger als andere in der Warteschlange ist).

 

Lokale Warteschlangen

In einer lokalen Warteschlange werden Instanzen ein und desselben Auftrags verarbeitet. Wenn nur ein Trigger konfiguriert wurde, wird der Prioritätswert ignoriert. Wenn es eine Reihe von Triggern unterschiedlicher Priorität gibt, konkurrieren die Trigger miteinander. Angenommen, ein Auftrag hat einen Timer und einen Dateisystem-Trigger. Der Timer hat eine niedrigerer Priorität, der Dateisystem-Trigger hingegen hat eine höhere Priorität. Wenn die Bedingung des Timers erfüllt wird und es keine Dateien gibt, die verarbeitet werden müssen, startet der Timer den Auftrag früher als der zweite Trigger. Sind jedoch mehrere zu verarbeitende Dateien vorhanden, muss der Timer warten und der Dateisystem-Trigger erhält Priorität.

 

 

© 2018-2024 Altova GmbH