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}:`); } } } 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; },