ks.cluster
ks.cluster wird für verschiedene Operationen verwendet die Instanz/Cluster weit laufen.
ks.cluster steht nur Serverseitig zur Verfügung.
set
Setzt Werte an angegebenen Pfad in dem Redis.
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
path | String | Ja | Pfad an dem die Daten gesetzt werden sollen |
value | Any | Ja | Wert 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.
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
path | String | Ja | Pfad 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
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
path | String | Ja | Pfad 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
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
event | String | Ja | Name des Events das abonniert werden soll |
fn | Function | Ja | Funktion 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
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
event | String | Ja | Name des Events das ausgelöst werden soll |
data | any | Nein | Daten 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
Name | Typ | Pflichtangabe | Beschreibung |
---|---|---|---|
lockName | String | Ja | Name des Schlüssels unter dem die Funktion registriert wird |
fn | Function | Ja | Funktion die ausgeführt werden soll |
lockTimeout | Number | Nein | Automatischer 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);