mirror of
https://github.com/movie-web/backend.git
synced 2025-09-13 13:03:26 +00:00
Give jobs an ID
This commit is contained in:
@@ -9,8 +9,6 @@ const maxOffset = 60 * 4;
|
|||||||
const secondsOffset =
|
const secondsOffset =
|
||||||
Math.floor(Math.random() * (maxOffset - minOffset)) + minOffset;
|
Math.floor(Math.random() * (maxOffset - minOffset)) + minOffset;
|
||||||
|
|
||||||
const log = scopedLogger('jobs');
|
|
||||||
|
|
||||||
const wait = (sec: number) =>
|
const wait = (sec: number) =>
|
||||||
new Promise<void>((resolve) => {
|
new Promise<void>((resolve) => {
|
||||||
setTimeout(() => resolve(), sec * 1000);
|
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)
|
* @param cron crontime in this order: (min of hour) (hour of day) (day of month) (day of week) (sec of month)
|
||||||
*/
|
*/
|
||||||
export function job(
|
export function job(
|
||||||
name: string,
|
id: string,
|
||||||
cron: string,
|
cron: string,
|
||||||
cb: (ctx: { em: EntityManager; log: Logger }) => Promise<void>,
|
cb: (ctx: { em: EntityManager; log: Logger }) => Promise<void>,
|
||||||
): CronJob {
|
): 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({
|
return CronJob.from({
|
||||||
cronTime: cron,
|
cronTime: cron,
|
||||||
onTick: async () => {
|
onTick: async () => {
|
||||||
@@ -35,10 +34,10 @@ export function job(
|
|||||||
// actually run the job
|
// actually run the job
|
||||||
try {
|
try {
|
||||||
const em = getORM().em.fork();
|
const em = getORM().em.fork();
|
||||||
log.info(`Starting job '${name}' with cron '${cron}'`);
|
log.info(`Starting job '${id}' with cron '${cron}'`);
|
||||||
await cb({ em, log });
|
await cb({ em, log: log });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
log.error(`Failed to run '${name}' job!`);
|
log.error(`Failed to run '${id}' job!`);
|
||||||
log.error(err);
|
log.error(err);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@@ -3,7 +3,7 @@ import { job } from '@/modules/jobs/job';
|
|||||||
|
|
||||||
// every day at 12:00:00
|
// every day at 12:00:00
|
||||||
export const challengeCodeJob = job(
|
export const challengeCodeJob = job(
|
||||||
'Challenge Code Expiry',
|
'challenge-code-expiry',
|
||||||
'0 12 * * *',
|
'0 12 * * *',
|
||||||
async ({ em }) => {
|
async ({ em }) => {
|
||||||
await em
|
await em
|
||||||
|
@@ -4,7 +4,7 @@ import { job } from '@/modules/jobs/job';
|
|||||||
|
|
||||||
// every day at 12:00:00
|
// every day at 12:00:00
|
||||||
export const sessionExpiryJob = job(
|
export const sessionExpiryJob = job(
|
||||||
'Session Expiry',
|
'session-expiry',
|
||||||
'0 12 * * *',
|
'0 12 * * *',
|
||||||
async ({ em, log }) => {
|
async ({ em, log }) => {
|
||||||
const deletedSessions = await em
|
const deletedSessions = await em
|
||||||
|
@@ -4,7 +4,7 @@ import { job } from '@/modules/jobs/job';
|
|||||||
|
|
||||||
// every day at 12:00:00
|
// every day at 12:00:00
|
||||||
export const userDeletionJob = job(
|
export const userDeletionJob = job(
|
||||||
'User Deletion',
|
'user-deletion',
|
||||||
'0 12 * * *',
|
'0 12 * * *',
|
||||||
async ({ em, log }) => {
|
async ({ em, log }) => {
|
||||||
const knex = em.getKnex();
|
const knex = em.getKnex();
|
||||||
|
@@ -54,11 +54,12 @@ function createWinstonLogger() {
|
|||||||
return loggerObj;
|
return loggerObj;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function scopedLogger(service: string) {
|
export function scopedLogger(service: string, meta: object = {}) {
|
||||||
const logger = createWinstonLogger();
|
const logger = createWinstonLogger();
|
||||||
logger.defaultMeta = {
|
logger.defaultMeta = {
|
||||||
...logger.defaultMeta,
|
...logger.defaultMeta,
|
||||||
svc: service,
|
svc: service,
|
||||||
|
...meta,
|
||||||
};
|
};
|
||||||
return logger;
|
return logger;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user