From 9abbfa3ab42adb74f36e303db447c8ed9787fd85 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Wed, 28 May 2025 08:48:38 +0000 Subject: [PATCH] chore(server): print jobId (#12593) Need to query the payload through job id for debugging ## Summary by CodeRabbit - **Tests** - Updated job metrics test to include an explicit job ID during execution. - **Refactor** - Enhanced job execution to support an optional job ID, improving job tracking and logging. --- .../server/src/base/job/queue/__tests__/queue.spec.ts | 2 +- packages/backend/server/src/base/job/queue/executor.ts | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/backend/server/src/base/job/queue/__tests__/queue.spec.ts b/packages/backend/server/src/base/job/queue/__tests__/queue.spec.ts index 0f0cbceeb..27e15d3b1 100644 --- a/packages/backend/server/src/base/job/queue/__tests__/queue.spec.ts +++ b/packages/backend/server/src/base/job/queue/__tests__/queue.spec.ts @@ -168,7 +168,7 @@ test('should be able to record job metrics', async t => { timerStub.reset(); await t.throwsAsync( - executor.run('nightly.__test__throw', { name: 'test executor' }), + executor.run('nightly.__test__throw', { name: 'test executor' }, 'test-id'), { message: 'Throw in job handler', } diff --git a/packages/backend/server/src/base/job/queue/executor.ts b/packages/backend/server/src/base/job/queue/executor.ts index 183c7fe2d..733542c0e 100644 --- a/packages/backend/server/src/base/job/queue/executor.ts +++ b/packages/backend/server/src/base/job/queue/executor.ts @@ -58,7 +58,8 @@ export class JobExecutor implements OnModuleDestroy { async run( name: T, - payload: Jobs[T] + payload: Jobs[T], + jobId?: string ): Promise { const ns = namespace(name); const handler = this.scanner.getHandler(name); @@ -70,7 +71,7 @@ export class JobExecutor implements OnModuleDestroy { const fn = wrapCallMetric( async () => { - const signature = `[${name}] (${handler.name})`; + const signature = `[${name}] (${handler.name}, id=${jobId})`; try { this.logger.debug(`Job started: ${signature}`); const ret = await handler.fn(payload); @@ -129,7 +130,7 @@ export class JobExecutor implements OnModuleDestroy { return await cls.run(async () => { cls.set(CLS_ID, requestId); - return await this.run(job.name as JobName, payload); + return await this.run(job.name as JobName, payload, job.id); }); }, merge({}, this.config.job.queue, this.config.job.worker, queueOptions, {