Give jobs an ID

This commit is contained in:
William Oldham
2023-11-04 12:34:34 +00:00
parent 4b79a43e15
commit fa1880ba48
5 changed files with 11 additions and 11 deletions

View File

@@ -9,8 +9,6 @@ const maxOffset = 60 * 4;
const secondsOffset =
Math.floor(Math.random() * (maxOffset - minOffset)) + minOffset;
const log = scopedLogger('jobs');
const wait = (sec: number) =>
new Promise<void>((resolve) => {
setTimeout(() => resolve(), sec * 1000);
@@ -20,11 +18,12 @@ const wait = (sec: number) =>
* @param cron crontime in this order: (min of hour) (hour of day) (day of month) (day of week) (sec of month)
*/
export function job(
name: string,
id: string,
cron: string,
cb: (ctx: { em: EntityManager; log: Logger }) => Promise<void>,
): CronJob {
log.info(`Registering job '${name}' with cron '${cron}'`);
const log = scopedLogger('jobs', { jobId: id });
log.info(`Registering job '${id}' with cron '${cron}'`);
return CronJob.from({
cronTime: cron,
onTick: async () => {
@@ -35,10 +34,10 @@ export function job(
// actually run the job
try {
const em = getORM().em.fork();
log.info(`Starting job '${name}' with cron '${cron}'`);
await cb({ em, log });
log.info(`Starting job '${id}' with cron '${cron}'`);
await cb({ em, log: log });
} catch (err) {
log.error(`Failed to run '${name}' job!`);
log.error(`Failed to run '${id}' job!`);
log.error(err);
}
},

View File

@@ -3,7 +3,7 @@ import { job } from '@/modules/jobs/job';
// every day at 12:00:00
export const challengeCodeJob = job(
'Challenge Code Expiry',
'challenge-code-expiry',
'0 12 * * *',
async ({ em }) => {
await em

View File

@@ -4,7 +4,7 @@ import { job } from '@/modules/jobs/job';
// every day at 12:00:00
export const sessionExpiryJob = job(
'Session Expiry',
'session-expiry',
'0 12 * * *',
async ({ em, log }) => {
const deletedSessions = await em

View File

@@ -4,7 +4,7 @@ import { job } from '@/modules/jobs/job';
// every day at 12:00:00
export const userDeletionJob = job(
'User Deletion',
'user-deletion',
'0 12 * * *',
async ({ em, log }) => {
const knex = em.getKnex();

View File

@@ -54,11 +54,12 @@ function createWinstonLogger() {
return loggerObj;
}
export function scopedLogger(service: string) {
export function scopedLogger(service: string, meta: object = {}) {
const logger = createWinstonLogger();
logger.defaultMeta = {
...logger.defaultMeta,
svc: service,
...meta,
};
return logger;
}