Files
stats/apps/worker/src/jobs/cron.delete-projects.ts
Carl-Gerhard Lindesvärd 723ba3ef6c add: admin cli
2025-11-12 14:57:02 +01:00

31 lines
722 B
TypeScript

import { logger } from '@/utils/logger';
import { db, deleteFromClickhouse, deleteProjects } from '@openpanel/db';
import type { CronQueuePayload } from '@openpanel/queue';
import type { Job } from 'bullmq';
export async function jobdeleteProjects(job: Job<CronQueuePayload>) {
const projects = await db.project.findMany({
where: {
deleteAt: {
lte: new Date(),
},
},
});
if (projects.length === 0) {
return;
}
await deleteProjects(projects.map((project) => project.id));
logger.info('Deleting projects', {
projects,
});
await deleteFromClickhouse(projects.map((project) => project.id));
logger.info(`Deleted ${projects.length} projects`, {
projects,
});
}