Cache-Funktionen in Jitterbit Studio
Einführung
Cloud-Caching ermöglicht es Ihnen, Daten vorübergehend in der Cloud zu speichern. Der zwischengespeicherte Wert ist für alle Operationen sichtbar, die im selben Geltungsbereich ausgeführt werden, bis der Cache abläuft, unabhängig davon, wie eine Operation gestartet wurde oder auf welchem Agenten eine Operation ausgeführt wird.
Durch das Caching von Daten in Harmony, anstatt sich auf lokale oder agentenspezifische Datenspeicher zu verlassen, können Daten zwischen separaten Operationen und über Projekte hinweg geteilt werden.
Bevor Sie die Funktionen ReadCache oder WriteCache (unten beschrieben) verwenden, beachten Sie bitte diese wichtigen Hinweise:
- Bei der Definition eines Caches für eine Umgebung müssen in den Projekten eindeutige Cache-Namen verwendet werden, um unbeabsichtigtes Überschreiben von Werten zu vermeiden. Wenn die Absicht besteht, Daten zwischen Projekten zu teilen, ist es erforderlich, denselben Cache-Namen zu verwenden.
- Diese Funktionen funktionieren nur zur Laufzeit. Wenn Sie versuchen, ein Skript oder eine Operation zu testen, die diese Funktionen enthält, werden Fehler generiert.
WriteCache- undReadCache-Werte sind nicht über die Management-Konsole zugänglich.- Standardmäßig sind
WriteCacheundReadCache(kombiniert) auf maximal 100 Aufrufe pro Minute für eine Organisation beschränkt.
Beispiele für die Verwendung von ReadCache und WriteCache werden sowohl innerhalb der einzelnen Funktionen als auch in den Beispielen unten behandelt.
Anwendungsfälle
Die folgenden sind mehrere Beispielanwendungsfälle, in denen Sie möglicherweise Cloud-Caching verwenden möchten:
- Angenommen, es gibt zwei Operation Chains, Chain A und Chain B, in einem einzigen Projekt. Diese Ketten werden separat ausgeführt. Mit einem einzelnen Agenten kann der temporäre Speicher zwischen den Ketten geteilt werden. In einer Umgebung mit mehreren Agenten kann der temporäre Speicher jedoch nicht verwendet werden, da er lokal zu dem Agenten gehört, der eine Operation ausführt, und nicht zum 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 löst dieses Problem.
- Daten können zwischen asynchronen Operationen innerhalb eines Projekts geteilt werden.
- Fehler, die in verschiedenen Operationen generiert werden, könnten in einem gemeinsamen Cache gespeichert werden. Durch das Ansammeln von Operationsergebnissen auf diese Weise können umfassendere Warnmeldungen erstellt werden.
- Anmeldetoken können zwischen Operationen geteilt werden.
- Die Funktionen
WriteCacheundReadCachekönnen verwendet werden, um Daten zwischen Projekten zu teilen. Bevor Cloud-Caching verfügbar war, mussten alle verwandten Operationen innerhalb desselben Projekts liegen, was zu sehr großen Projekten führen konnte. Durch die Verwendung von Cloud-Caching können große Projekte jetzt in kleinere Projekte unterteilt werden, was eine granularere Berechtigungszugriffssteuerung sowie eine Kompartimentierung von Entwicklung und Test 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. Standard ist 30 Minuten (1800 Sekunden). Das Maximum beträgt 30 Tage (2592000 Sekunden). WennReadCacheverwendet wird, läuft der zwischengespeicherte Wert nach dieser Anzahl von Sekunden nach einem erfolgreichen Lesen ab. Wenn entweder keine Ablaufzeit oder eine nicht-positive Ablaufzeit angegeben wird, ist die Ablaufzeit des zwischengespeicherten Wertes die Ablaufzeit des letzten Schreibvorgangs.scope: Bestimmt, ob der Geltungsbereich des Caches für das aktuelle Projekt gilt. Der Geltungsbereich des Caches kann entweder"project"oder"environment"sein. (Die kürzeren Formen"proj"und"env"werden ebenfalls akzeptiert.) Der Standardgeltungsbereich ist"project", wenn entweder kein Geltungsbereich oder eine leere Zeichenfolge angegeben wird. Der zwischengespeicherte Wert ist für alle Operationen sichtbar, die im gleichen Geltungsbereich ausgeführt werden, bis er abläuft, unabhängig davon, wie diese Operation gestartet wurde oder auf welchem Agenten die Operation ausgeführt wird.
Beschreibung
Liest aus einem gemeinsamen Cache, der auf Harmony gespeichert ist.
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. Standard ist 30 Minuten (1800 Sekunden). Das Maximum beträgt 30 Tage (2592000 Sekunden). Wenn entweder keine Ablaufzeit oder eine nicht-positive Ablaufzeit angegeben wird, wird die Ablaufzeit des zwischengespeicherten Wertes mit der Ablaufzeit des letzten Schreibvorgangs erneuert. Die maximal zulässige Ablaufzeit wird von Ihrer Organisation und/oder Harmony festgelegt.scope: Bestimmt, ob der Geltungsbereich des Caches für das aktuelle Projekt gilt. Der Geltungsbereich des Caches kann entweder"project"oder"environment"sein. (Die kürzeren Formen"proj"und"env"werden ebenfalls akzeptiert.) Der Standardgeltungsbereich ist"project", wenn entweder kein Geltungsbereich oder eine leere Zeichenfolge angegeben wird. Der zwischengespeicherte Wert ist für alle Operationen sichtbar, die im gleichen Geltungsbereich ausgeführt werden, bis er abläuft, unabhängig davon, wie diese Operation gestartet wurde oder auf welchem Agenten 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 und 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: Umweltbereich
// 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 beinhaltet die Angabe der Umgebung im scope-Parameter und das Setzen des Timeouts auf einen leeren String. Die expiration_seconds können ein leerer String, eine negative Zahl (wie "-1") oder eine Anzahl von Sekunden bis zu 30 Tagen (2592000 Sekunden) sein.
// Schreiben unter Angabe nur der Umgebung
WriteCache("City", "Houston", "", "env");
Beispiel 5: Nur Ablaufsekunden verwenden
Dieses Beispiel gibt eine Ablaufzeit von 300 Sekunden an. Die expiration_seconds können ein leerer String, eine negative Zahl (wie "-1") oder eine Anzahl von Sekunden bis zu 30 Tagen (2592000 Sekunden) sein.
// Schreiben unter Angabe der Ablaufzeit in Sekunden
WriteCache("City", "Houston", "300");
Lesen des zwischengespeicherten Wertes. 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 Wertes
city = ReadCache("City");