From f69d60c110e7c5324855cf7744a7755512673f8a Mon Sep 17 00:00:00 2001 From: samaratungajs Date: Fri, 30 Aug 2024 08:28:58 +0530 Subject: [PATCH 1/2] fix: pgboss module error handling --- lib/pgboss.module.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/pgboss.module.ts b/lib/pgboss.module.ts index 07c8fcc..9418373 100644 --- a/lib/pgboss.module.ts +++ b/lib/pgboss.module.ts @@ -32,7 +32,11 @@ export class PgBossModule constructor( @Inject(PGBOSS_TOKEN) private readonly boss: PgBoss, private readonly handlerScannerService: HandlerScannerService, - ) {} + ) { + this.boss.on("error", (error: Error) => { + this.logger.error(`PgBoss error: ${error.message}`, error.stack); + }); + } static forRootAsync(options: PgBossModuleAsyncOptions): DynamicModule { const logger = new Logger(LOGGER); @@ -53,6 +57,9 @@ export class PgBossModule ), ), ); + boss.on("error", (error: Error) => { + logger.error(`PgBoss error: ${error.message}`, error.stack); + }); logger.log("PgBoss started successfully"); return boss; }, From 8b807845bc317222b938ce710d14a631d2582b0e Mon Sep 17 00:00:00 2001 From: samaratungajs Date: Fri, 30 Aug 2024 08:30:14 +0530 Subject: [PATCH 2/2] fix: handler scanner error handling --- lib/handler-scanner.service.ts | 40 +++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/lib/handler-scanner.service.ts b/lib/handler-scanner.service.ts index 3e9d3df..a2589aa 100644 --- a/lib/handler-scanner.service.ts +++ b/lib/handler-scanner.service.ts @@ -1,4 +1,3 @@ -import { Injectable, Logger } from "@nestjs/common"; import { Reflector, ModulesContainer } from "@nestjs/core"; import { PgBossService } from "./pgboss.service"; import { @@ -9,7 +8,8 @@ import { } from "./decorators/job.decorator"; import { InstanceWrapper } from "@nestjs/core/injector/instance-wrapper"; import { BatchWorkOptions } from "pg-boss"; -import { LOGGER } from "utils/consts"; +import { LOGGER } from "./utils/consts"; +import { Injectable, Logger } from "@nestjs/common"; @Injectable() export class HandlerScannerService { @@ -57,22 +57,26 @@ export class HandlerScannerService { if (jobName) { const boundHandler = methodRef.bind(instance); - if (cronExpression) { - await this.pgBossService.registerCronJob( - jobName, - cronExpression, - boundHandler, - {}, - cronOptions, - ); - this.logger.log(`Registered cron job: ${jobName}`); - } else { - await this.pgBossService.registerJob( - jobName, - boundHandler, - jobOptions, - ); - this.logger.log(`Registered job: ${jobName}`); + try { + if (cronExpression) { + await this.pgBossService.registerCronJob( + jobName, + cronExpression, + boundHandler, + {}, + cronOptions, + ); + this.logger.log(`Registered cron job: ${jobName}`); + } else { + await this.pgBossService.registerJob( + jobName, + boundHandler, + jobOptions, + ); + this.logger.log(`Registered job: ${jobName}`); + } + } catch (error) { + this.logger.error(`Error registering job ${jobName}:`); } } }