From a01fd3aa865a3ff440bc3f9c65433aaa6b92c85a Mon Sep 17 00:00:00 2001 From: hailin Date: Tue, 13 Jan 2026 21:07:11 -0800 Subject: [PATCH] fix(contribution): run sequential CDC consumption in background Prevents blocking NestJS onModuleInit during CDC sync by running the sequential consumption in the background with error handling. Co-Authored-By: Claude Opus 4.5 --- .../src/infrastructure/kafka/cdc-consumer.service.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/services/contribution-service/src/infrastructure/kafka/cdc-consumer.service.ts b/backend/services/contribution-service/src/infrastructure/kafka/cdc-consumer.service.ts index 040a78a2..a8846630 100644 --- a/backend/services/contribution-service/src/infrastructure/kafka/cdc-consumer.service.ts +++ b/backend/services/contribution-service/src/infrastructure/kafka/cdc-consumer.service.ts @@ -297,10 +297,12 @@ export class CDCConsumerService implements OnModuleInit, OnModuleDestroy { this.sequentialMode = true; this.isRunning = true; - // 开始顺序消费 - await this.startSequentialConsumption(); + // 开始顺序消费(后台运行,不阻塞服务启动) + this.startSequentialConsumption().catch((error) => { + this.logger.error('Sequential consumption failed', error); + }); - this.logger.log('CDC consumer started with sequential phase consumption'); + this.logger.log('CDC consumer started with sequential phase consumption (running in background)'); } catch (error) { this.logger.error('Failed to start CDC consumer', error); // 不抛出错误,允许服务在没有 Kafka 的情况下启动(用于本地开发)