Cache-Funktionen in Jitterbit Studio
Einführung
Cloud-Caching ermöglicht es, Daten vorübergehend in der Cloud zu speichern. Der zwischengespeicherte Wert ist für alle Operationen sichtbar, die im gleichen Bereich ausgeführt werden, bis der Cache abläuft – unabhängig davon, wie eine Operation gestartet wurde oder auf welchem Agent eine Operation ausgeführt wird.
Durch das Caching von Daten in Harmony anstelle von lokalen oder agentspezifischen Datenspeichern können Daten zwischen separaten Operationen und über Projekte hinweg gemeinsam genutzt werden.
Bevor Sie eine der Funktionen ReadCache oder WriteCache (siehe unten) verwenden, beachten Sie diese wichtigen Hinweise:
- Beim Definieren eines Caches für eine Umgebung müssen eindeutige Cache-Namen in den Projekten verwendet werden, um ein unbeabsichtigtes Überschreiben von Werten zu vermeiden. Wenn beabsichtigt ist, Daten zwischen Projekten freizugeben, ist die Verwendung desselben Cache-Namens erforderlich.
- Diese Funktionen funktionieren nur während der Laufzeit. Beim Versuch, ein Skript oder eine Operation zu testen, die diese Funktionen enthält, werden Fehler generiert.
WriteCache- undReadCache-Werte sind nicht über die Management Console zugänglich.- Standardmäßig sind
WriteCacheundReadCache(kombiniert) auf maximal 100 Aufrufe pro Minute für eine Organisation begrenzt.
Beispiele für die Verwendung von ReadCache und WriteCache werden sowohl in den einzelnen Funktionen als auch in den Beispielen unten behandelt.
Anwendungsfälle
Im Folgenden finden Sie mehrere Beispiele für Anwendungsfälle, in denen Sie Cloud-Caching verwenden möchten:
- Angenommen, zwei Operation Chains, Chain A und Chain B, in einem einzelnen Projekt. Diese Chains werden separat ausgeführt. Mit einem einzelnen Agent kann temporärer Speicher zwischen den Chains gemeinsam genutzt werden. In einer Multi-Agent-Umgebung kann temporärer Speicher jedoch nicht verwendet werden, da er lokal für den Agent ist, der eine Operation ausführt, und nicht für das Projekt als Ganzes. Wenn Agent 1 Chain A ausführt und Agent 2 Chain B ausführt, sind die von Chain A generierten Daten für Chain B nicht verfügbar. Die Verwendung von Cloud-Caching anstelle von temporärem Speicher behebt dieses Problem.
- Daten können zwischen asynchronen Operationen innerhalb eines Projekts gemeinsam genutzt werden.
- Fehler, die über verschiedene Operationen hinweg generiert werden, können in einem gemeinsamen Cache gespeichert werden. Durch die Akkumulierung von Operationsergebnissen auf diese Weise können umfassendere Warnungen erstellt werden.
- Login-Token können über Operationen hinweg gemeinsam genutzt werden.
WriteCache- undReadCache-Funktionen können verwendet werden, um Daten zwischen Projekten freizugeben. Vor der Verfügbarkeit von Cloud-Caching mussten alle zugehörigen Operationen im gleichen Projekt sein, was zu sehr großen Projekten führen konnte. Durch die Verwendung von Cloud-Caching können große Projekte nun in kleinere Projekte aufgeteilt werden, was eine granularere Berechtigungsverwaltung sowie eine Aufteilung von Entwicklung und Tests ermöglicht.
ReadCache
Deklaration
type ReadCache(string name[, long expirationSeconds, string scope])
Syntax
ReadCache(<name>, <expirationSeconds>, <scope>)
Erforderliche Parameter
name: Bis zu 256 Zeichen.
Optionale Parameter
expirationSeconds: Anzahl der Sekunden, bevor der zwischengespeicherte Wert abläuft. Der Standardwert beträgt 30 Minuten (1800 Sekunden). Das Maximum beträgt 30 Tage (2592000 Sekunden). Bei Verwendung fürReadCacheläuft der zwischengespeicherte Wert nach dieser Anzahl von Sekunden nach einem erfolgreichen Lesen ab. Wenn weder ein Ablauf noch ein nicht positiver Ablauf angegeben wird, ist der Ablauf des zwischengespeicherten Werts der Ablauf des letzten Schreibvorgangs.scope: Bestimmt, ob der Bereich des Caches für das aktuelle Projekt gilt. Der Bereich des Caches kann entweder"project"oder"environment"sein. (Die kürzeren Formen"proj"und"env"werden ebenfalls akzeptiert.) Der Standardbereich ist"project", wenn weder ein Bereich noch eine leere Zeichenkette angegeben wird. Der zwischengespeicherte Wert ist für alle Operationen sichtbar, die im gleichen Bereich ausgeführt werden, bis er abläuft – unabhängig davon, wie diese Operation gestartet wurde oder auf welchem Agent die Operation ausgeführt wird.
Beschreibung
Liest aus einem gemeinsamen Cache, der auf Harmony gespeichert ist.
Informationen zur Fehlerbehebung finden Sie unter Zwischengespeicherter Wert läuft schneller ab als erwartet im Leitfaden zur Fehlerbehebung bei Operationen.
Beispiele
// Read a cached value in the default scope (project)
myToken = ReadCache("authToken");
// Read a cached value in the "env" scope
myToken = ReadCache("authToken", "", "env");
// Read a cached value in the environment scope with a default timeout
lastTimeStamp = ReadCache("lastTimeStamp", -1, "env");
WriteCache
Deklaration
void WriteCache(string name, type value[, long expirationSeconds, string scope])
Syntax
WriteCache(<name>, <value>, <expirationSeconds>, <scope>)
Erforderliche Parameter
name: Bis zu 256 Zeichen.value: Darf 1 MB nicht überschreiten.
Optionale Parameter
expirationSeconds: Anzahl der Sekunden, bevor der zwischengespeicherte Wert abläuft. Der Standardwert beträgt 30 Minuten (1800 Sekunden). Das Maximum beträgt 30 Tage (2592000 Sekunden). Wenn keine Ablaufzeit oder eine nicht positive Ablaufzeit angegeben wird, wird die Ablaufzeit des zwischengespeicherten Werts anhand der Ablaufzeit des letzten Schreibvorgangs erneuert. Die maximal zulässige Ablaufzeit wird von Ihrer Organisation und/oder Harmony festgelegt.scope: Bestimmt, ob der Cache-Bereich für das aktuelle Projekt gilt. Der Bereich des Caches kann entweder"project"oder"environment"sein. (Die kürzeren Formen"proj"und"env"werden ebenfalls akzeptiert.) Der Standard-Bereich ist"project", wenn kein Bereich oder eine leere Zeichenkette angegeben wird. Der zwischengespeicherte Wert ist für alle Operationen sichtbar, die im gleichen Bereich ausgeführt werden, bis er abläuft, unabhängig davon, wie die Operation gestartet wurde oder auf welchem Agent die Operation ausgeführt wird.
Beschreibung
Schreibt in einen gemeinsamen Cache, der auf Harmony gespeichert ist.
Warnung
Das Standardlimit für die Verwendung von WriteCache beträgt maximal 100 Aufrufe pro Minute pro Organisation.
Beispiele
// Write a value to the cache in the default scope ("project")
WriteCache("authToken", myToken);
// Write a value (a timestamp using the Now() function)
// to the cache in the environment ("env") scope with a default timeout
WriteCache("lastTimeStamp", Now(), -1, "env");
// Writing a value without specifying an expiration or scope
// $authToken would be generated from a login operation
WriteCache("authToken", $authToken);
// Write a value to the cache in the "env" scope
// No expiration specified
WriteCache("City", "Houston", "", "env");
Beispiele
Beispiel 1: Projektbereich
// Write a value to the cache in the default scope (project)
WriteCache("authToken", myToken);
// Read the cached value in the default scope (project)
myToken = ReadCache("authToken");
Beispiel 2: Umgebungsbereich
// Write a value (a timestamp using the Now() function)
// to the cache in the environment ("env") scope with a default timeout
WriteCache("lastTimeStamp", Now(), -1, "env");
// Read the cached value in the environment scope with a default timeout
lastTimeStamp = ReadCache("lastTimeStamp", -1, "env");
Beispiel 3: Keine Ablaufsekunden oder Bereich
// Writing a value without specifying an expiration or scope
// $authToken would be generated from a login operation
WriteCache("authToken", $authToken);
// Reading the cached value:
myToken = ReadCache("authToken");
Beispiel 4: Nur Bereich verwenden
Dieses Beispiel zeigt die Angabe der Umgebung im Parameter scope und das Setzen des Timeouts auf eine leere Zeichenkette. expiration_seconds kann eine leere Zeichenkette, eine negative Zahl (z. B. "-1") oder eine Anzahl von Sekunden bis zu 30 Tagen (2592000 Sekunden) sein.
// Schreiben mit Angabe nur der Umgebung
WriteCache("City", "Houston", "", "env");
Beispiel 5: Nur Ablaufsekunden verwenden
Dieses Beispiel gibt eine Ablaufzeit von 300 Sekunden an. expiration_seconds kann eine leere Zeichenkette, eine negative Zahl (z. B. "-1") oder eine Anzahl von Sekunden bis zu 30 Tagen (2592000 Sekunden) sein.
// Schreiben mit Angabe der Ablaufzeit in Sekunden
WriteCache("City", "Houston", "300");
Lesen des zwischengespeicherten Werts. Der zwischengespeicherte Wert wird nur zurückgegeben, wenn der Aufruf innerhalb von 300 Sekunden nach dem Schreiben erfolgt; andernfalls wird ein Nullwert zurückgegeben:
// Lesen des zwischengespeicherten Werts
city = ReadCache("City");