知识库

在应用程序中启用事务超时

Neo4j 有一个全局设置 dbms.transaction.timeout,可以在 neo4j.conf 文件中进行配置,如果任何用户的查询超过指定的超时时间阈值,该查询将被终止。

但是如何在应用程序内部实现呢?Neo4j Java Driver API 提供了 TransactionConfig 类,其中包含一个名为 Timeout(<time in seconds>) 的方法,可在应用程序内部设置事务超时。

有关 API 的更多信息,请访问此处:/docs/java-manual/current/session-api/simple/#_transaction_timeout

下面是一个示例。

这里我们定义了 TransactionConfig 并将其用于显式事务。

TransactionConfig config = TransactionConfig.builder()
    .withTimeout(Duration.ofSeconds(4))
    .withMetadata(metadata)
    .build();

定义 TransactionConfig 并将超时设置为 4 秒。将在显式事务中使用该配置。

try (Transaction tx = session.beginTransaction(config)) {
  // ...
} finally {
  // ...
}

因此,如果该事务超过 4 秒,将被终止。

同样,也可以实现 TransactionConfig 来配合自动提交事务和事务函数使用。

© . This site is unofficial and not affiliated with Neo4j, Inc.