演武场和练兵场
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
import { localrun } from "pinus/lib/master/starter";
|
||||
import { setLock, releaseLock } from './redlockCacheService';
|
||||
var Redlock = require('redlock');
|
||||
var RedisService = module.exports;
|
||||
var _redlockCache;
|
||||
|
||||
export function initRedlock (redisClient) {
|
||||
_redlockCache = new RedlockService(redisClient);
|
||||
}
|
||||
|
||||
export class RedlockService {
|
||||
_redisClient: any;
|
||||
@@ -36,8 +42,22 @@ export class RedlockService {
|
||||
console.error('A redis error has occurred:', err);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
getWithModify() {
|
||||
|
||||
}
|
||||
export async function lockData(serverId: string, dataName: string, id: string ) {
|
||||
let key = 'serverId_'+serverId+'_'+dataName+'_'+id;
|
||||
let lockKey = 'locks:' + key;
|
||||
console.log(' lockKey = '+ lockKey);
|
||||
_redlockCache.redlock.lock(lockKey, _redlockCache.ttl).then(function(lock) {
|
||||
setLock(lockKey, lock);
|
||||
return {err: null, releaseCallback: releaseCallback.bind(null, lockKey)};
|
||||
}).catch(function(err) {
|
||||
console.error(err);
|
||||
return { err };
|
||||
});
|
||||
}
|
||||
|
||||
export async function releaseCallback(lockKey: string) {
|
||||
releaseLock(lockKey);
|
||||
}
|
||||
Reference in New Issue
Block a user