gpt4 book ai didi

java - Neo4j数据一致性问题

转载 作者:行者123 更新时间:2023-12-02 10:36:35 25 4
gpt4 key购买 nike

使用以下设置访问 neo4j 数据库时出现空结果错误。

  • Neo4j 在 Docker 中运行。
  • uploader 进程连续运行,每个进程之间有 0.5 秒的 sleep 时间上传
  • 读取器进程也持续运行

读者:

Driver driver = GraphDatabase.driver("bolt://db_address:7687", AuthTokens.basic("user", "password"));
while (true) {
try (Session session = driver.session(AccessMode.READ)) {
for (int i = 1; i <= 100; i++) {
session.run("Match (n:Number) where n.value=$value return ID(n)", parameters("value", i)).single().get(0).asInt();
}
}
Thread.sleep(500);
}

上传者:

Driver driver = GraphDatabase.driver("bolt://db_address:7687", AuthTokens.basic("user", "password"));
while (true) {
try (Session session = driver.session(AccessMode.WRITE)) {
try (Transaction tx = session.beginTransaction()) {
tx.run("MATCH (n) DELETE n");
for (int i = 1; i <= 100; i++) {
tx.run("CREATE (n:Number {value: $value}) return ID(n)", parameters("value", i)).single().get(0).asInt();
}
tx.success();
}
}
Thread.sleep(500);
}

几个周期后,我在阅读器进程中遇到错误:无法检索单个记录,因为该结果为空。

启动时,数据库包含所请求的数据。根据“写事务”的描述和上面的代码,空结果似乎很奇怪。

我是否错过了 Neo4j 事务处理的某些内容?

最佳答案

您需要调用tx.success()来提交交易。

PS:不确定为什么每次上传运行时都会清除数据库

关于java - Neo4j数据一致性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53251886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com