拍卖行:定时任务加锁
This commit is contained in:
@@ -15,6 +15,8 @@ import { RewardInter } from '../pubUtils/interface';
|
||||
import { reportTAEvent } from './sdkService';
|
||||
import { getAllServers } from './redisService';
|
||||
import { sendMessageToGuildWithSuc, sendMessageToServer, sendMessageToServerWithSuc } from './pushService';
|
||||
import { lockDataWithNoParam } from './redLockService';
|
||||
import { DATA_NAME } from '../consts';
|
||||
|
||||
// ! 获取底价,假数据
|
||||
export function getBasePrice(gid: number, count: number) {
|
||||
@@ -290,6 +292,9 @@ export async function calculateDividend(dividend: DividendType) {
|
||||
}
|
||||
|
||||
export async function startGuildAuction() {
|
||||
let res: any = await lockDataWithNoParam(DATA_NAME.SEND_AUCTION);//加锁
|
||||
if (!!res.err) return false;
|
||||
|
||||
try {
|
||||
console.log('schedule startGuildAuction called:', new Date());
|
||||
const begin = await todayGuildBegin();
|
||||
@@ -304,10 +309,11 @@ export async function startGuildAuction() {
|
||||
}
|
||||
|
||||
await pushAuctionUpdate(lots, dividends);
|
||||
|
||||
res.releaseCallback();
|
||||
return true;
|
||||
} catch (e) {
|
||||
console.error('startGuildAuction err: ', e);
|
||||
res.releaseCallback();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -330,6 +336,8 @@ export async function sendLotsRewardToMlail(lots: LotType[]) {
|
||||
}
|
||||
|
||||
export async function startWorldAuction() {
|
||||
let res: any = await lockDataWithNoParam(DATA_NAME.SEND_AUCTION);//加锁
|
||||
if (!!res.err) return false;
|
||||
try {
|
||||
console.log('schedule startWorldAuction called:', new Date());
|
||||
const begin = await todayGuildBegin();
|
||||
@@ -345,14 +353,18 @@ export async function startWorldAuction() {
|
||||
await pushCurrentTime(time);
|
||||
}
|
||||
await pushAuctionUpdate(lots, dividends);
|
||||
res.releaseCallback();
|
||||
return true;
|
||||
} catch (e) {
|
||||
console.error('startWorldAuction err: ', e);
|
||||
res.releaseCallback();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export async function stopAuction() {
|
||||
let res: any = await lockDataWithNoParam(DATA_NAME.SEND_AUCTION);//加锁
|
||||
if (!!res.err) return false;
|
||||
try {
|
||||
console.log('schedule stopAuction called:', new Date());
|
||||
const begin = await todayGuildBegin();
|
||||
@@ -367,9 +379,11 @@ export async function stopAuction() {
|
||||
await pushCurrentTime(time);
|
||||
}
|
||||
await pushAuctionUpdate(lots, []);
|
||||
res.releaseCallback();
|
||||
return true;
|
||||
} catch (e) {
|
||||
console.error('stopAuction err: ', e);
|
||||
res.releaseCallback();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ export async function getModuleData(type: string, data: { role: RoleType, sessio
|
||||
case 'daily': // 每日
|
||||
return await getDailyBattleList(role);
|
||||
case 'expedition': // 远征
|
||||
return await getExpeditionStatus(roleId, roleName);
|
||||
return await getExpeditionStatus(roleId, roleName, true);
|
||||
case 'tower': // 镇念塔
|
||||
return await getTowerEntryData(role);
|
||||
case 'comBattle': // 寻宝
|
||||
|
||||
@@ -18,10 +18,11 @@ import { checkSystemIsOpen } from './roleService';
|
||||
* @param roleId
|
||||
* @param roleName
|
||||
*/
|
||||
export async function getExpeditionStatus(roleId: string, roleName: string) {
|
||||
export async function getExpeditionStatus(roleId: string, roleName: string, isEntry = false) {
|
||||
// 重置次数
|
||||
let role = await RoleModel.findByRoleId(roleId);
|
||||
if(!checkSystemIsOpen(role, SYSTEM_OPEN_ID.EXPEDITION)) return false
|
||||
if(!role.hasInit) return false;
|
||||
if(isEntry && !checkSystemIsOpen(role, SYSTEM_OPEN_ID.EXPEDITION)) return false
|
||||
// 获取远征关卡状态
|
||||
let expeditionRecord = await ExpeditionRecordModel.getCurRecord(roleId);
|
||||
if (!expeditionRecord) { // 首次新建一条记录
|
||||
|
||||
@@ -68,6 +68,11 @@ export async function lockData(serverId: number, dataName: string, id: string )
|
||||
return await lock(lockKey);
|
||||
}
|
||||
|
||||
export async function lockDataWithNoParam(dataName: string) {
|
||||
let key = `${dataName}`;
|
||||
return await lock(key);
|
||||
}
|
||||
|
||||
function lock(lockKey: string) {
|
||||
return _redlockCache.redlock.lock(lockKey, _redlockCache.ttl).then(function(lock) {
|
||||
setLock(lockKey, lock);
|
||||
|
||||
@@ -12,4 +12,5 @@ export enum DATA_NAME {
|
||||
AUCTION_LOT = 'LotCode',
|
||||
DONATE = 'Donate',
|
||||
FUND = 'fund',
|
||||
SEND_AUCTION = 'sendAuction',
|
||||
}
|
||||
|
||||
@@ -2,141 +2,141 @@
|
||||
{
|
||||
"id": 1,
|
||||
"level": 10,
|
||||
"hit": 5000,
|
||||
"flee": 5000,
|
||||
"hit": 100000,
|
||||
"flee": 10000,
|
||||
"cri": 5000,
|
||||
"antCri": 0,
|
||||
"physicaldamageInc": 5000,
|
||||
"physicaldamageInc": 0,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 10000
|
||||
"damageCri": 50000,
|
||||
"strikeBack": 50000
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"level": 20,
|
||||
"hit": 10000,
|
||||
"hit": 100000,
|
||||
"flee": 10000,
|
||||
"cri": 10000,
|
||||
"cri": 5000,
|
||||
"antCri": 0,
|
||||
"physicaldamageInc": 10000,
|
||||
"physicaldamageInc": 0,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 10000
|
||||
"damageCri": 50000,
|
||||
"strikeBack": 50000
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"level": 30,
|
||||
"hit": 15000,
|
||||
"hit": 105000,
|
||||
"flee": 15000,
|
||||
"cri": 15000,
|
||||
"antCri": 0,
|
||||
"physicaldamageInc": 15000,
|
||||
"cri": 10000,
|
||||
"antCri": 5000,
|
||||
"physicaldamageInc": 0,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 15000
|
||||
"damageCri": 50000,
|
||||
"strikeBack": 50000
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"level": 40,
|
||||
"hit": 20000,
|
||||
"hit": 110000,
|
||||
"flee": 20000,
|
||||
"cri": 20000,
|
||||
"antCri": 0,
|
||||
"physicaldamageInc": 20000,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 20000
|
||||
"antCri": 15000,
|
||||
"physicaldamageInc": 10000,
|
||||
"physicaldamageDec": 10000,
|
||||
"magicdamageInc": 10000,
|
||||
"magicdamageDec": 10000,
|
||||
"damageCri": 50000,
|
||||
"strikeBack": 50000
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"level": 50,
|
||||
"hit": 25000,
|
||||
"hit": 115000,
|
||||
"flee": 25000,
|
||||
"cri": 25000,
|
||||
"antCri": 0,
|
||||
"physicaldamageInc": 25000,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 25000
|
||||
"cri": 30000,
|
||||
"antCri": 25000,
|
||||
"physicaldamageInc": 20000,
|
||||
"physicaldamageDec": 20000,
|
||||
"magicdamageInc": 20000,
|
||||
"magicdamageDec": 20000,
|
||||
"damageCri": 50000,
|
||||
"strikeBack": 50000
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"level": 60,
|
||||
"hit": 30000,
|
||||
"hit": 120000,
|
||||
"flee": 30000,
|
||||
"cri": 30000,
|
||||
"antCri": 0,
|
||||
"cri": 40000,
|
||||
"antCri": 35000,
|
||||
"physicaldamageInc": 30000,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 30000
|
||||
"physicaldamageDec": 30000,
|
||||
"magicdamageInc": 30000,
|
||||
"magicdamageDec": 30000,
|
||||
"damageCri": 55000,
|
||||
"strikeBack": 55000
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"level": 70,
|
||||
"hit": 35000,
|
||||
"flee": 35000,
|
||||
"cri": 35000,
|
||||
"antCri": 0,
|
||||
"physicaldamageInc": 35000,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 35000
|
||||
"hit": 130000,
|
||||
"flee": 40000,
|
||||
"cri": 50000,
|
||||
"antCri": 45000,
|
||||
"physicaldamageInc": 40000,
|
||||
"physicaldamageDec": 40000,
|
||||
"magicdamageInc": 40000,
|
||||
"magicdamageDec": 40000,
|
||||
"damageCri": 55000,
|
||||
"strikeBack": 55000
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"level": 80,
|
||||
"hit": 40000,
|
||||
"flee": 40000,
|
||||
"cri": 40000,
|
||||
"antCri": 0,
|
||||
"physicaldamageInc": 40000,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 40000
|
||||
"hit": 140000,
|
||||
"flee": 50000,
|
||||
"cri": 60000,
|
||||
"antCri": 55000,
|
||||
"physicaldamageInc": 50000,
|
||||
"physicaldamageDec": 50000,
|
||||
"magicdamageInc": 50000,
|
||||
"magicdamageDec": 50000,
|
||||
"damageCri": 55000,
|
||||
"strikeBack": 60000
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"level": 90,
|
||||
"hit": 45000,
|
||||
"flee": 45000,
|
||||
"cri": 45000,
|
||||
"antCri": 0,
|
||||
"physicaldamageInc": 45000,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 45000
|
||||
"hit": 150000,
|
||||
"flee": 60000,
|
||||
"cri": 70000,
|
||||
"antCri": 65000,
|
||||
"physicaldamageInc": 60000,
|
||||
"physicaldamageDec": 60000,
|
||||
"magicdamageInc": 60000,
|
||||
"magicdamageDec": 60000,
|
||||
"damageCri": 60000,
|
||||
"strikeBack": 65000
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"level": 100,
|
||||
"hit": 50000,
|
||||
"flee": 50000,
|
||||
"cri": 50000,
|
||||
"antCri": 0,
|
||||
"physicaldamageInc": 50000,
|
||||
"physicaldamageDec": 0,
|
||||
"magicdamageInc": 0,
|
||||
"magicdamageDec": 0,
|
||||
"damageCri": 0,
|
||||
"strikeBack": 50000
|
||||
"hit": 160000,
|
||||
"flee": 70000,
|
||||
"cri": 80000,
|
||||
"antCri": 75000,
|
||||
"physicaldamageInc": 70000,
|
||||
"physicaldamageDec": 70000,
|
||||
"magicdamageInc": 70000,
|
||||
"magicdamageDec": 70000,
|
||||
"damageCri": 60000,
|
||||
"strikeBack": 70000
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user