From fa1880ba482d29b8a290475b49aca67cb7955ffd Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sat, 4 Nov 2023 12:34:34 +0000 Subject: [PATCH] Give jobs an ID --- src/modules/jobs/job.ts | 13 ++++++------- src/modules/jobs/list/challengeCode.ts | 2 +- src/modules/jobs/list/sessionExpiry.ts | 2 +- src/modules/jobs/list/userDeletion.ts | 2 +- src/services/logger.ts | 3 ++- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/modules/jobs/job.ts b/src/modules/jobs/job.ts index 888a1fd..d6c9313 100644 --- a/src/modules/jobs/job.ts +++ b/src/modules/jobs/job.ts @@ -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((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, ): 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); } }, diff --git a/src/modules/jobs/list/challengeCode.ts b/src/modules/jobs/list/challengeCode.ts index ed0c478..b1b8bd4 100644 --- a/src/modules/jobs/list/challengeCode.ts +++ b/src/modules/jobs/list/challengeCode.ts @@ -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 diff --git a/src/modules/jobs/list/sessionExpiry.ts b/src/modules/jobs/list/sessionExpiry.ts index b54313f..36a25b5 100644 --- a/src/modules/jobs/list/sessionExpiry.ts +++ b/src/modules/jobs/list/sessionExpiry.ts @@ -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 diff --git a/src/modules/jobs/list/userDeletion.ts b/src/modules/jobs/list/userDeletion.ts index 8cad565..df948ab 100644 --- a/src/modules/jobs/list/userDeletion.ts +++ b/src/modules/jobs/list/userDeletion.ts @@ -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(); diff --git a/src/services/logger.ts b/src/services/logger.ts index a967d39..83ab54f 100644 --- a/src/services/logger.ts +++ b/src/services/logger.ts @@ -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; }