Altova FlowForce Server 2024 

Speichern von Auftragsergebnissen im Cache

Zur Startseite Zurück Nach oben Weiter

In diesem Beispiel wird gezeigt, wie Sie das Ergebnis eines Auftrags (eines so genannten Cache Producers) im Cache speichern und es in einem anderen Auftrag (dem so genannten Cache Consumer) verwenden. Beide Aufträge werden als Web-Dienste mit dem folgenden Verhalten bereitgestellt:

 

Wenn der Cache Producer-Webdienst aufgerufen wird, wird der Inhalt des Verzeichnisses rekursiv aufgelistet, der Cache wird erstellt oder aktualisiert und das Ergebnis wird anschließend im Bowser angezeigt;

Wenn der Cache Consumer-Webdienst aufgerufen wird, wird der vom Cache Producer-Webdienst erstellte Cache gelesen und das Ergebnis wird im Browser angezeigt.

 

Wir werden nun die Ausführungszeit beider Aufträge miteinander vergleichen und werden sehen, dass der zweite Auftrag viel schneller als der erste ausgeführt wird, da er die im Cache gespeicherten Daten nutzt.

 

Voraussetzungen

Benötigte Lizenzen: FlowForce Server

Der FlowForce Web Server- und der FlowForce Server-Dienst werden an der konfigurierten Netzwerkadresse und am konfigurierten Port ausgeführt und sind dort empfangsbereit.

Sie haben ein FlowForce Server-Benutzerkonto mit Berechtigungen für einen der Container (standardmäßig hat jeder authentifizierte Benutzer Zugriff auf den in diesem Beispiel verwendeten Container /public).

 

Anmerkung:In diesem Beispiel werden zwar Windows-Pfade und Befehle verwendet, Sie können es aber auch auf anderen Betriebssystemen testen, wenn Sie die Pfade und Befehle entsprechend ändern.

 

Konfigurieren des Auftrags

1.Klicken Sie auf Konfiguration und navigieren Sie anschließend zum Container /public/Examples. Der Container public/Examples sollte bereits vorhanden sein, wenn Sie die vorherigen Beispiele durchgearbeitet haben; erstellen Sie ihn andernfalls mit dem Befehl Erstellen | Container erstellen.

2.Klicken Sie auf Erstellen und wählen Sie Auftrag erstellen aus.

3.Geben Sie im Feld für den Auftragsnamen CachedResult ein.

4.Fügen Sie unter "Ausführungsschritte" einen neuen Ausführungsschritt mit den folgenden Einstellungen hinzu:

 

Funktion ausführen

Navigieren Sie zur Funktion /system/shell/commandline.

Befehl

Geben Sie den folgenden Shell-Befehl ein:

 

dir /s

 

Auf Windows-Systemen listet dieser Befehl den Inhalt des Arbeitsverzeichnisses rekursiv auf (siehe nächste Einstellung).

Arbeitsverzeichnis

Setzen Sie den Wert auf ein Verzeichnis auf dem Rechner, auf dem FlowForce ausgeführt wird, z.B.:

 

C:\

 

Wenn Sie ein anderes Verzeichnis verwenden möchten, wählen Sie eines aus, das groß genug ist, sodass das rekursive Auflisten des Verzeichnisinhalts mindestens 20-30 Sekunden dauert.

Das Ergebnis dieses Schritts zuweisen an

Wir müssen den vom Ausführungsschritt zurückgegebenen Wert in einem späteren Schritt referenzieren, daher muss er einen Namen haben. Nennen wir den Wert in diesem Feld hier dir.

 

5.Fügen Sie unter "Ausführungsschritte" einen neuen Ausführungsschritt mit den folgenden Einstellungen hinzu:

 

Funktion ausführen

Navigieren Sie zur Funktion /system/compute.

Ausdruck

Geben Sie den folgenden FlowForce Server-Ausdruck ein:

 

stdout(dir)

 

Die stdout-Funktion konvertiert die vom vorherigen Ausführungsschritt zurückgegebenen Rohdaten in einen Datenstream (siehe Schrittergebnisfunktionen).

 

6.Setzen Sie den Rückgabetyp unter "Ausführungsergebnis" auf stream. Wie Sie vielleicht bemerkt haben, haben wir denselben Datentyp wie den gewählt, der vom letzten Ausführungsschritt des Auftrags zurückgegebenen wurde. Die Auftrag sollte nun folgendermaßen aussehen:

fs_cache_example_01

7.Aktivieren Sie unter "Cache-Ergebnis" das Kontrollkästchen Ergebnis im Cache speichern..

8.Aktivieren Sie das Kontrollkästchen Automatisch neuen Zwischenspeicherauftrag erstellen.. und geben Sie als Namen des Web-Diensts DirectoryListingCachedService ein.

fs_cache_example_02

9.Aktivieren Sie unter "Dienst" das Kontrollkästchen Diesen Auftrag über HTTP zur Verfügung stellen und geben Sie als Namen des Diensts DirectoryListingService ein.

fs_cache_example_03

10.Wählen Sie unter "Anmeldeinformationen" einen vorhandenen Eintrag aus oder definieren Sie lokale Anmeldeinformationen, siehe Anmeldeinformationen.

11.Klicken Sie auf Speichern.

 

Ausführung des Auftrags

Sie haben nun sowohl den Cache Producer als auch den Cache Consumer-Auftrag fertig konfiguriert. Um die Ausführungsgeschwindigkeit des nicht im Cache gespeicherten Diensts (DirectoryListingService) im Browser zu testen, führen Sie den Auftrag auf eine der folgenden Arten aus:

 

Gehen Sie zur Startseite und klicken Sie anschließend auf Alle aktiven Trigger und Dienste anzeigen. Klicken Sie anschließend auf die in der Spalte "Info" angezeigte URL des Auftrags.

Geben Sie in die Adressleiste des Browsers http://127.0.0.1:4646/service/DirectoryListingService ein. Beachten Sie, dass diese URL nur funktioniert, wenn der FlowForce Server-Dienst an der Standard-Host-Adresse und am Standard-Port-Namen empfangsbereit ist. Wenn Sie auf der Konfigurationsseite andere Host- und Port-Einstellungen definiert haben, dann ändern Sie die Adresse entsprechend.

Wenn Sie das optionale Feld Host-Name von FlowForce Server über die Setup-Seite definieren, können Sie den Webservice-Aufruf direkt über die Auftragskonfigurationsseite ausführen, indem Sie neben dem Kontrollkästchen Diesen Auftrag über HTTP...zur Verfügung stellen auf die Schaltfläche fs_ic_call_ws klicken. Andernfalls wird diese Schaltfläche nicht angezeigt.

 

Wenn Sie aufgefordert werden, beim Aufrufen des Web-Diensts Anmeldeinformationen anzugeben, so geben Sie dieselben Anmeldeinformationen ein, mit denen Sie sich auch bei FlowForce Server angemeldet haben.

 

Für die HTTP-Authentifizierung sollten Sie Ihre FlowForce Server-Anmeldeinformationen nur zu Testzwecken eingeben. Für Produktionszwecke wird empfohlen, einen neuen FlowForce-Benutzer zu erstellen, diesem Benutzer im Container, in dem sich der Auftrag befindet, die Berechtigung Dienst - Verwenden einzuräumen und den Web-Dienst anschließend über das entsprechende Benutzerkonto aufzurufen. Um die HTTP-Authentifizierung zu deaktivieren, und den Web-Dienst öffentlich zugänglich zu machen, weisen Sie dem Benutzer Anonymous die Berechtigung Dienst - Verwenden zu, siehe Funktionsweise von Berechtigungen.

 

Beachten Sie, dass es eine Weile dauern kann, da mit dem Auftrag die Liste des Inhalts von C:\ rekursiv aufgelistet wird. Kontrollieren Sie im Auftrags-Log, wie lange die Ausführung des Auftrags gedauert hat (siehe Anzeige des Auftrags-Logs).

 

Um die Ausführungsgeschwindigkeit des Cache Consumer-Diensts (DirectoryListingCachedService) zu testen, geben Sie in die Adressleiste des Browsers http://127.0.0.1:4646/service/DirectoryListingCachedService (oder bei anders konfiguriertem Host-Namen und Port die entsprechende URL) ein. Da dieser Dienst den Cache nutzt, anstatt die Verzeichnisauflistung auszuführen, sollte er viel weniger lange dauern.

© 2017-2023 Altova GmbH