import { FrontendOrBackendSession, pinus } from "pinus"; import { refreshMails } from '../services/mailService'; import { STATUS } from '../consts/statusCode'; import { resResult } from '../pubUtils/util'; import { nowSeconds } from "../pubUtils/timeUtil"; import { RoleModel } from '../db/Role'; export async function refresh(session: FrontendOrBackendSession) { const roleId = session.get('roleId'); const sid = session.get('sid'); const serverId: number = parseInt(session.get('serverId')); let updatedMailAt: number = parseInt(session.get('updatedMailAt')); let uids = [{uid: roleId, sid}]; pinus.app.get('channelService').pushMessageByUids('onPushCurrentTime', resResult(STATUS.SUCCESS, {time: Date.now()}), uids); let nowTime = nowSeconds(); if (!!roleId && updatedMailAt < nowTime - 5) { //保持最少5秒间隙 session.set('updatedMailAt', nowTime); RoleModel.updatedRoleMailAt(roleId, nowTime); await refreshMails(roleId, sid, serverId, updatedMailAt); } }