Files
classroomio/packages/jobs/src/payloads/maintenance.ts
T

30 lines
1.1 KiB
TypeScript

import * as z from 'zod';
export const ZRetentionCompactPayload = z.object({
/** Override default retention windows (in days). Optional. */
windowDays: z
.object({
mediaJob: z.number().int().positive().optional(),
jobStep: z.number().int().positive().optional(),
deadLetterJob: z.number().int().positive().optional()
})
.optional()
});
export type TRetentionCompactPayload = z.infer<typeof ZRetentionCompactPayload>;
export const ZDeadLetterCleanupPayload = z.object({
olderThanDays: z.number().int().positive().default(180)
});
export type TDeadLetterCleanupPayload = z.infer<typeof ZDeadLetterCleanupPayload>;
/**
* Sweep `media_job` rows that are still `queued` / `running` but haven't been
* touched in `staleAfterMinutes`. Marks them `failed` so the active-job guard
* stops blocking new runs after a worker crash, server restart, or lost
* BullMQ job.
*/
export const ZMediaJobReapPayload = z.object({
staleAfterMinutes: z.number().int().positive().default(30)
});
export type TMediaJobReapPayload = z.infer<typeof ZMediaJobReapPayload>;