From dfa62f7683f4a63c6e17f87e3ba142f41e1fcb97 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Sat, 24 May 2025 12:27:52 +0000 Subject: [PATCH] chore(server): support dynamic disable indexer (#12498) ## Summary by CodeRabbit - **Bug Fixes** - Improved system stability by ensuring that indexing jobs do not run when the indexer feature is disabled. --- .../backend/server/src/plugins/indexer/job.ts | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/backend/server/src/plugins/indexer/job.ts b/packages/backend/server/src/plugins/indexer/job.ts index 1f06c775f9..f68b2c590b 100644 --- a/packages/backend/server/src/plugins/indexer/job.ts +++ b/packages/backend/server/src/plugins/indexer/job.ts @@ -40,6 +40,10 @@ export class IndexerJob { @OnJob('indexer.indexDoc') async indexDoc({ workspaceId, docId }: Jobs['indexer.indexDoc']) { + if (!this.config.indexer.enabled) { + return; + } + // delete the 'indexer.deleteDoc' job from the queue await this.queue.remove( `deleteDoc/${workspaceId}/${docId}`, @@ -50,6 +54,10 @@ export class IndexerJob { @OnJob('indexer.deleteDoc') async deleteDoc({ workspaceId, docId }: Jobs['indexer.deleteDoc']) { + if (!this.config.indexer.enabled) { + return; + } + // delete the 'indexer.updateDoc' job from the queue await this.queue.remove( `indexDoc/${workspaceId}/${docId}`, @@ -60,6 +68,10 @@ export class IndexerJob { @OnJob('indexer.indexWorkspace') async indexWorkspace({ workspaceId }: Jobs['indexer.indexWorkspace']) { + if (!this.config.indexer.enabled) { + return; + } + await this.queue.remove(workspaceId, 'indexer.deleteWorkspace'); const workspace = await this.models.workspace.get(workspaceId); if (!workspace) { @@ -127,6 +139,10 @@ export class IndexerJob { @OnJob('indexer.deleteWorkspace') async deleteWorkspace({ workspaceId }: Jobs['indexer.deleteWorkspace']) { + if (!this.config.indexer.enabled) { + return; + } + await this.queue.remove( `indexWorkspace/${workspaceId}`, 'indexer.indexWorkspace' @@ -136,6 +152,10 @@ export class IndexerJob { @OnJob('indexer.autoIndexWorkspaces') async autoIndexWorkspaces(payload: Jobs['indexer.autoIndexWorkspaces']) { + if (!this.config.indexer.enabled) { + return; + } + const startSid = payload.lastIndexedWorkspaceSid ?? 0; const workspaces = await this.models.workspace.listAfterSid( startSid,