From 17e1cbcf48a70d2f4627989a3bc287c7c6c37a9b Mon Sep 17 00:00:00 2001 From: CaptainB Date: Thu, 10 Jul 2025 17:29:59 +0800 Subject: [PATCH] refactor: optimize batch_sync method to include knowledge_id and workspace_id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1057859 --user=刘瑞斌 【知识库】正在向量化/生成问题中的文档,点击同步文档后没有取消当前文档的向量化/生成问题任务,重新进行同步+向量化/生成问题 https://www.tapd.cn/62980211/s/1728222 --- apps/knowledge/serializers/document.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/knowledge/serializers/document.py b/apps/knowledge/serializers/document.py index 3b5be642e..b99a947fa 100644 --- a/apps/knowledge/serializers/document.py +++ b/apps/knowledge/serializers/document.py @@ -1173,17 +1173,21 @@ class DocumentSerializers(serializers.Serializer): with_search_one=False ), knowledge_id, workspace_id - @staticmethod - def _batch_sync(document_id_list: List[str]): - for document_id in document_id_list: - DocumentSerializers.Sync(data={'document_id': document_id}).sync() - def batch_sync(self, instance: Dict, with_valid=True): if with_valid: BatchSerializer(data=instance).is_valid(model=Document, raise_exception=True) self.is_valid(raise_exception=True) # 异步同步 - work_thread_pool.submit(self._batch_sync, instance.get('id_list')) + work_thread_pool.submit( + lambda doc_ids: [ + DocumentSerializers.Sync(data={ + 'document_id': doc_id, + 'knowledge_id': self.data.get('knowledge_id'), + 'workspace_id': self.data.get('workspace_id') + }).sync() for doc_id in doc_ids + ], + instance.get('id_list') + ) return True @transaction.atomic