import { ACTIVITY_NAME } from 'common/Constants' import { ReadOnlyCache } from 'common/ReadOnlyCache' import logger from 'logger/logger' import { ActivityInfo } from 'models/ActivityInfo' import * as schedule from 'node-schedule' import { singleton } from 'zutils' /** * 定时更新发送邮件验证码的过期状态 */ @singleton export default class CacheSchedule { async updateCache() { try { const activity = await ActivityInfo.findById(ACTIVITY_NAME) new ReadOnlyCache().setData(ACTIVITY_NAME, activity) } catch (err) { logger.warn(err) } } scheduleAll() { schedule.scheduleJob('*/1 * * * *', async () => { await this.updateCache() }) this.updateCache() } }