提交最新代码。 代码动态执行存在一些问题,无法执行。
This commit is contained in:
@@ -9,7 +9,7 @@ logger = logging.getLogger("project_implementation")
|
||||
config = Config()
|
||||
|
||||
|
||||
class ProjectTookiItNeo4j(ProjectTookiIt):
|
||||
class ProjectToolkitNeo4j(ProjectToolkit):
|
||||
"""
|
||||
基于Neo4j数据库的项目类实现
|
||||
"""
|
||||
@@ -2215,70 +2215,3 @@ class ProjectTookiItNeo4j(ProjectTookiIt):
|
||||
error = f"查询失败: {str(e)}"
|
||||
return status, data, error, helper_info
|
||||
|
||||
|
||||
class ProjectBuilder:
|
||||
"""
|
||||
项目构建器
|
||||
描述: 用于构建项目对象的构建器
|
||||
"""
|
||||
|
||||
_instance = None
|
||||
_driver = None # 存储Neo4j驱动实例
|
||||
|
||||
@staticmethod
|
||||
def init_driver(neo4j_conf):
|
||||
"""
|
||||
初始化Neo4j驱动
|
||||
|
||||
Args:
|
||||
neo4j_conf (dict): Neo4j配置信息,包含uri、username和password
|
||||
|
||||
Returns:
|
||||
None
|
||||
"""
|
||||
if ProjectBuilder._driver is not None:
|
||||
# 如果已经有驱动实例,先关闭它
|
||||
ProjectBuilder._driver.close()
|
||||
|
||||
# 创建新的驱动实例
|
||||
uri = neo4j_conf.get("uri")
|
||||
username = neo4j_conf.get("username")
|
||||
password = neo4j_conf.get("password")
|
||||
ProjectBuilder._driver = GraphDatabase.driver(uri, auth=(username, password))
|
||||
|
||||
@staticmethod
|
||||
def build():
|
||||
"""
|
||||
构建并返回项目实例,使用已初始化的驱动
|
||||
|
||||
Returns:
|
||||
ProjectTookiItNeo4j: 创建的项目实例
|
||||
"""
|
||||
# 如果已经有实例,直接返回
|
||||
if ProjectBuilder._instance is not None:
|
||||
return ProjectBuilder._instance
|
||||
|
||||
# 检查驱动是否已初始化
|
||||
if ProjectBuilder._driver is None:
|
||||
raise ValueError("必须先调用ProjectBuilder.init_driver初始化Neo4j驱动")
|
||||
|
||||
# 创建新实例,使用已初始化的驱动
|
||||
ProjectBuilder._instance = ProjectTookiItNeo4j(ProjectBuilder._driver)
|
||||
return ProjectBuilder._instance
|
||||
|
||||
@staticmethod
|
||||
def close():
|
||||
"""
|
||||
关闭当前项目实例和驱动的连接
|
||||
"""
|
||||
if ProjectBuilder._instance is not None:
|
||||
ProjectBuilder._instance.close()
|
||||
ProjectBuilder._instance = None
|
||||
|
||||
if ProjectBuilder._driver is not None:
|
||||
ProjectBuilder._driver.close()
|
||||
ProjectBuilder._driver = None
|
||||
|
||||
|
||||
# 注册退出处理函数,确保程序退出时自动关闭连接
|
||||
atexit.register(ProjectBuilder.close)
|
||||
|
||||
Reference in New Issue
Block a user