Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Armazenando o valor de retorno de node.js setTimeout em redis


Você não pode armazenar o objeto no Redis. O setTimeout retorna um Handler (referência de objeto).

Uma ideia seria criar seu próprio array associativo na memória e armazenar o índice no Redis. Por exemplo:
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]);