瀏覽代碼

fix: add redis lock to AnalyticdbVector init (#6859)

Co-authored-by: xiaozeyu <xiaozeyu.xzy@alibaba-inc.com>
tags/0.7.0
8bitpd 1 年之前
父節點
當前提交
40c6f3c724
No account linked to committer's email address
共有 1 個文件被更改,包括 9 次插入2 次删除
  1. 9
    2
      api/core/rag/datasource/vdb/analyticdb/analyticdb_vector.py

+ 9
- 2
api/core/rag/datasource/vdb/analyticdb/analyticdb_vector.py 查看文件

@@ -65,8 +65,15 @@ class AnalyticdbVector(BaseVector):
AnalyticdbVector._init = True

def _initialize(self) -> None:
self._initialize_vector_database()
self._create_namespace_if_not_exists()
cache_key = f"vector_indexing_{self.config.instance_id}"
lock_name = f"{cache_key}_lock"
with redis_client.lock(lock_name, timeout=20):
collection_exist_cache_key = f"vector_indexing_{self.config.instance_id}"
if redis_client.get(collection_exist_cache_key):
return
self._initialize_vector_database()
self._create_namespace_if_not_exists()
redis_client.set(collection_exist_cache_key, 1, ex=3600)

def _initialize_vector_database(self) -> None:
from alibabacloud_gpdb20160503 import models as gpdb_20160503_models

Loading…
取消
儲存