Skip to main content
Version: Dingo

ks.cluster

ks.cluster wird für verschiedene Operationen verwendet die Instanz/Cluster weit laufen.

info

ks.cluster steht nur Serverseitig zur Verfügung.

set

Setzt Werte an angegebenen Pfad in dem Redis.

NameTypPflichtangabeBeschreibung
pathStringJaPfad an dem die Daten gesetzt werden sollen
valueAnyJaWert der in Redis gesetzt werden soll

Beispiel

Das Beispiel zeigt, wie Sie einen Wert im Redis setzen.

await ks.cluster.set('someKey', 'someValue');

get

Lädt Werte aus dem Redis.

NameTypPflichtangabeBeschreibung
pathStringJaPfad an dem die Daten gefunden werden

Beispiel

Das Beispiel zeigt, wie Sie unter Angabe eines Pfades einen Wert aus dem Redis laden.

const value = await ks.cluster.get('someKey');
console.log(value); // "someValue"

remove

Entfernt einen Wert aus dem Redis.

Parameter

NameTypPflichtangabeBeschreibung
pathStringJaPfad an dem die Daten entfernt werden sollen

Beispiel

Das Beispiel zeigt, wie Sie unter Angabe eines Pfades einen Wert aus dem Redis entfernen.

await ks.cluster.remove('someKey');

on

Mit on können Sie sich auf ein globales Event abonnieren. Wenn dieses Event ausgelöst wird, wird die angegebene Funktion ausgeführt.

Parameter

NameTypPflichtangabeBeschreibung
eventStringJaName des Events das abonniert werden soll
fnFunctionJaFunktion die bei ausgelöstem Event ausgeführt werden soll

Beispiel

Das Beispiel zeigt, wie Sie sich auf ein bestimmtes Event abonnieren können. Wenn nun mit emit someEvent ausgelöst wird, werden die übergebenen Daten des Events ausgegeben.

await ks.cluster.on('someEvent', (data) => {
console.log(data); // "someEventData"
});

emit

Löst ein Event unter dem angegebenen Namen mit den übergebenen Daten aus.

Parameter

NameTypPflichtangabeBeschreibung
eventStringJaName des Events das ausgelöst werden soll
dataanyNeinDaten die an das Event übergeben werden

Beispiel

Das Beispiel zeigt, wie Sie ein bestimmtes Event auslösen können.

await ks.cluster.emit('someEvent', 'someEventData');

runSynchronized

Mit runSynchronized können Sie Code ausführen, der garantiert niemals gleichzeitig ausgeführt wird, egal wie oft dieser Code ausgerufen wird. Dies beschränkt sich immer nur auf Funktionen, die unter demselben lockName registriert wurden. Wenn diese Funktion mehrfach aufgerufen wird, werden alle weiteren Aufrufe nacheinander abgearbeitet, sobald die vorherige Ausführung beendet wurde.

Parameter

NameTypPflichtangabeBeschreibung
lockNameStringJaName des Schlüssels unter dem die Funktion registriert wird
fnFunctionJaFunktion die ausgeführt werden soll
lockTimeoutNumberNeinAutomatischer Timeout in Millisekunden

Beispiel

Das Beispiel zeigt, wie Sie Code ausführen, der garantiert niemals an zwei Stellen gleichzeitig ausgeführt werden kann. Falls die Funktion länger als 5 Sekunden braucht, wird die Ausführung abgebrochen.

await ks.cluster.runSynchronized('myCustomLock', () => {
return this.functionThatCanNeverRunParallel();
}, 5000);