Files
ZYZ/game-server/app/services/redLockService.ts
2021-01-18 13:32:21 +08:00

43 lines
1.3 KiB
TypeScript

var Redlock = require('redlock');
var RedisService = module.exports;
export class RedlockService {
_redisClient: any;
ttl: number;
redlock: any;
constructor(redisClient) {
this._redisClient = redisClient;
this._redisClient.on("error", function (err) {
console.error("Redis:Error:" + err);
});
this.ttl = 1000;
this.redlock = new Redlock(
[this._redisClient],
{
// the expected clock drift; for more details
// see http://redis.io/topics/distlock
driftFactor: 0.01, // time in ms
// the max number of times Redlock will attempt
// to lock a resource before erroring
retryCount: 10,
// the time in ms between attempts
retryDelay: 200, // time in ms
// the max time in ms randomly added to retries
// to improve performance under high contention
// see https://www.awsarchitectureblog.com/2015/03/backoff.html
retryJitter: 200 // time in ms
}
);
this.redlock.on('clientError', function(err) {
console.error('A redis error has occurred:', err);
});
}
getWithModify() {
}
}