neo4jrb如何重置打开事务的事务超时

时间:2015-04-21 11:50:53

标签: neo4j neo4j.rb

目前正在使用neo4j-community-2.1.7

据我所知,该版本已包含在此版本中。

在ruby docs中找不到任何对它的引用。

如果我对如何使用neo4jrb重置超时有一些指示,我将非常感激。

此致 罗斯

1 个答案:

答案 0 :(得分:1)

我不知道重置打开事务的事务超时的方法。也许更熟悉Java API中的事务的人可以澄清。

如果要在启动时更改事务超时长度,请按照http://neo4j.com/docs/stable/server-configuration.html中的说明在neo4j-server.properties中处理。

在Neo4j-core中,如果使用Neo4j-community或Neo4j-enterprise(以及Neo4j Embedded),代码建议您可以通过向Neo4j::Session.open提供第三个参数来指定配置文件,该参数包含config选项。如果将:embedded_db作为其第一个arg,则该方法将调用Neo4j::Embedded#initialize并将该哈希作为参数。如果您这样做:

Neo4j::Session.open(:embedded_db, 'path_to_db', properties_file: 'path_and_filename_to_neo4j-server.properties')

它最终将使用该属性文件:

db_service.loadPropertiesFromFile(properties_file) if properties_file

不幸的是,这并未在任何规范中得到证明,但您可以在https://github.com/neo4jrb/neo4j-core/blob/230d69371ed6bf39297786155ef4f3b1831dac08/lib/neo4j-embedded/embedded_session.rbinitializestart方法中看到它。

RE:评论信息

如果您使用:server_db,则无需包含neo4j-community gem。它未加载,在服务器模式下与Neo4j不兼容。

这是我第一次看到你提供的链接,很高兴知道那里有。我们没有公开在Neo4j.rb中做到这一点的方法,也不会因为它需要一些我们无法支持的线程魔法。如果你想手动完成,我可以告诉你最好的是你可以通过这种方式获得当前的交易ID:

tx = Neo4j::Transaction.new
# do stuff and before your long-running query...
tx.resource_data[:commit].split('/')[-2]

这将返回您可以在POST中使用的交易号,如其支持文档中所述。

如果您想帮助解决长时间运行的Cypher查询问题,我相信SO上的人员会提供帮助。