core: add task/daily/finish

This commit is contained in:
undefined committed 2024-11-07 08:55:30 +08:00
1 parent 5e37a63c5f
commit 80199a8ba4
2 files changed
+16 -2

No files matched your search

+15 -2
View File
@@ -63,13 +63,26 @@ export async function apply(ctx: Context) {
ctx.inject(['worker'], (c) => { ctx.inject(['worker'], (c) => {
ScheduleModel.Worker = c.worker; ScheduleModel.Worker = c.worker;
c.worker.addHandler('task.daily', async () => { c.worker.addHandler('task.daily', async () => {
const pref: Record<string, number> = {};
let start = Date.now();
await RecordModel.coll.deleteMany({ contest: { $in: [RecordModel.RECORD_PRETEST, RecordModel.RECORD_GENERATE] } }); await RecordModel.coll.deleteMany({ contest: { $in: [RecordModel.RECORD_PRETEST, RecordModel.RECORD_GENERATE] } });
await global.Hydro.script.rp?.run({}, new Logger('task/rp').debug); pref.record = Date.now() - start;
await global.Hydro.script.problemStat?.run({}, new Logger('task/problem').debug); start = Date.now();
await global.Hydro.script.rp?.run(pref, new Logger('task/rp').debug);
pref.rp = Date.now() - start;
start = Date.now();
await global.Hydro.script.problemStat?.run(pref, new Logger('task/problem').debug);
pref.problemStat = Date.now() - start;
start = Date.now();
if (global.Hydro.model.system.get('server.checkUpdate') && !(new Date().getDay() % 3)) { if (global.Hydro.model.system.get('server.checkUpdate') && !(new Date().getDay() % 3)) {
await global.Hydro.script.checkUpdate?.run({}, new Logger('task/checkUpdate').debug); await global.Hydro.script.checkUpdate?.run({}, new Logger('task/checkUpdate').debug);
pref.checkUpdate = Date.now() - start;
start = Date.now();
} }
await ctx.parallel('task/daily'); await ctx.parallel('task/daily');
pref.hook = Date.now() - start;
logger.info('task/daily', pref);
ctx.emit('task/daily/finish', pref);
}); });
}); });
+1
View File
@@ -43,6 +43,7 @@ export interface EventMap extends KnownHandlerEvents {
'monitor/collect': (info: any) => VoidReturn 'monitor/collect': (info: any) => VoidReturn
'api/update': () => void; 'api/update': () => void;
'task/daily': () => void; 'task/daily': () => void;
'task/daily/finish': (pref: Record<string, number>) => void;
'user/message': (uid: number, mdoc: MessageDoc) => void 'user/message': (uid: number, mdoc: MessageDoc) => void
'user/get': (udoc: User) => void 'user/get': (udoc: User) => void