26 lines
680 B
TypeScript
26 lines
680 B
TypeScript
import { NonceRecord } from 'models/NonceRecord'
|
|
import * as schedule from 'node-schedule'
|
|
import { singleton } from 'zutils'
|
|
|
|
/**
|
|
* 定时更新发送邮件验证码的过期状态
|
|
*/
|
|
@singleton
|
|
export default class NonceRecordSchedule {
|
|
async parseAllFinishedRecord() {
|
|
await NonceRecord.deleteMany({ status: 1 })
|
|
}
|
|
async parseAllExpiredRecord() {
|
|
let now = Date.now()
|
|
await NonceRecord.deleteMany({ expired: { $lt: now } })
|
|
}
|
|
scheduleAll() {
|
|
schedule.scheduleJob('*/1 * * * *', async () => {
|
|
await this.parseAllFinishedRecord()
|
|
})
|
|
schedule.scheduleJob('*/5 * * * *', async () => {
|
|
await this.parseAllExpiredRecord()
|
|
})
|
|
}
|
|
}
|