feat: add more clear job

This commit is contained in:
moonrailgun 2024-07-15 01:02:56 +08:00
parent 63de6d7aa5
commit b6bca6c250

View File

@ -21,6 +21,8 @@ export function initCronjob() {
await Promise.all([ await Promise.all([
statDailyUsage().catch(logger.error), statDailyUsage().catch(logger.error),
clearMonitorDataDaily().catch(logger.error), clearMonitorDataDaily().catch(logger.error),
clearMonitorEventDaily().catch(logger.error),
clearAuditLogDaily().catch(logger.error),
dailyHTTPCertCheckNotify().catch(logger.error), dailyHTTPCertCheckNotify().catch(logger.error),
]); ]);
@ -169,6 +171,60 @@ async function clearMonitorDataDaily() {
); );
} }
/**
* Clear over 2 week data
*/
async function clearMonitorEventDaily() {
if (env.disableAutoClear) {
return;
}
const date = dayjs().subtract(2, 'weeks').toDate();
logger.info(
'[clearMonitorEventDaily] Start clear monitor data before:',
date.toISOString()
);
const res = await prisma.monitorEvent.deleteMany({
where: {
createdAt: {
lte: date,
},
},
});
logger.info(
'[clearMonitorEventDaily] Clear monitor completed, delete record:',
res.count
);
}
/**
* Clear over 4 week data
*/
async function clearAuditLogDaily() {
if (env.disableAutoClear) {
return;
}
const date = dayjs().subtract(4, 'weeks').toDate();
logger.info(
'[clearAuditLogDaily] Start clear log data before:',
date.toISOString()
);
const res = await prisma.workspaceAuditLog.deleteMany({
where: {
createdAt: {
lte: date,
},
},
});
logger.info(
'[clearAuditLogDaily] Clear log completed, delete record:',
res.count
);
}
/** /**
* Https notify * Https notify
*/ */