在应用程序中启用事务超时
Neo4j 上有一个全局设置 dbms.transaction.timeout
,可以在 neo4j.conf
文件中设置,因此,如果任何用户的任何查询超过指定的超时阈值,该查询将被终止。
但是,如何在应用程序中实现这一点?Neo4j Java 驱动程序 API 提供了 TransactionConfig
类,该类具有名为 Timeout(<以秒为单位的时间>)
的方法,允许在应用程序中设置事务超时。
有关 API 的更多信息,请访问: https://neo4j.ac.cn/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
来与自动提交事务和事务函数一起工作。
此页面是否有帮助?