Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Speichern des Rückgabewerts von node.js setTimeout in redis

Sie können das Objekt nicht in Redis speichern. Das setTimeout Methode gibt einen Handler (Objektreferenz) zurück.

Eine Idee wäre, ein eigenes assoziatives Array im Speicher zu erstellen und den Index in Redis zu speichern. Zum Beispiel:

var nextTimerIndex = 0;
var timerMap = {};

var timer = setTimeout(function(timerIndex) {
    console.log('Ding!');

    // Free timer reference!
    delete timerMap[timerIndex];
}, 5 * 1000, nextTimerIndex);

// Store index in Redis...

// Then, store the timer object for later reference
timerMap[nextTimerIndex++] = timer;

// ...
// To clear the timeout
clearTimeout(timerMap[myTimerIndex]);