捐赠:添加锁
This commit is contained in:
@@ -61,7 +61,7 @@ export class DonationHandler {
|
||||
const guildCode: string = session.get('guildCode');
|
||||
let res: any = await lockData(serverId, DATA_NAME.DONATE, guildCode);// 锁定资金的增加
|
||||
try {
|
||||
if (!res) {
|
||||
if (!!res.err) {
|
||||
return resResult(STATUS.REDLOCK_ERR);
|
||||
}
|
||||
|
||||
|
||||
@@ -73,16 +73,19 @@ export async function lockDataWithNoParam(dataName: string) {
|
||||
return await lock(key);
|
||||
}
|
||||
|
||||
function lock(lockKey: string) {
|
||||
return _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 };
|
||||
});
|
||||
async function lock(lockKey: string) {
|
||||
return new Promise((resolve) => {
|
||||
_redlockCache.redlock.lock(lockKey, _redlockCache.ttl, function(err, lock) {
|
||||
if(err) {
|
||||
return resolve({ err })
|
||||
}
|
||||
setLock(lockKey, lock);
|
||||
return resolve({err: null, releaseCallback: releaseCallback.bind(null, lockKey)});
|
||||
});
|
||||
})
|
||||
}
|
||||
export async function releaseCallback(lockKey: string) {
|
||||
|
||||
function releaseCallback(lockKey: string) {
|
||||
releaseLock(lockKey);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user