Martin Flower のSequence Generatorコンポーネントを彼の著書Patterns of Enterprise Application Architecture in nodejs に redis をバックエンドとして実装したいと考えています。
例えば。
var redisClient = ...;
var count = redisClient.get('count');
var stepSize = 1000;
var initCount = 0;
count = count ? count : initCount;
var counterMax = count + stepSize;
redisClient.set('count', counterMax);
var counter = function(){
++count;
if(count>=counterMax){
counterMax = count + stepSize;
redisClient.set('count', counterMax);
}
return count;
}
module.exports = {
nextValue: counter
}
私のクライアントでは、次を使用します。
var seq = require(./sequence);
app.get('/', function(req, res){
var token = seq();
if( req.cookies.userToken ){
res,cookie( 'userToken', token );
}
....
});
nodejs の redis に、非同期ではなくブロックする方法でアクセスする必要があります。方法はありますか? そしてどうやって?