Redis
 sql >> Database >  >> NoSQL >> Redis

Memorizzazione del valore restituito di node.js setTimeout in redis

Non è possibile memorizzare l'oggetto in Redis. Il setTimeout il metodo restituisce un gestore (riferimento all'oggetto).

Un'idea sarebbe quella di creare il proprio array associativo in memoria e archiviare l'indice in Redis. Ad esempio:

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]);