0

目前使用 neo4j-community-2.1.7

我了解该功能已包含在此版本中。

在 ruby​​ 文档中找不到任何对它的引用。

如果我对如何使用 neo4jrb 重置超时有一些指导,将不胜感激。

问候罗斯

4

1 回答 1

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即包含配置选项的哈希。该方法,如果:embedded_db作为它的第一个参数给出,将调用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方法中看到它。

回复:评论信息

如果您使用:server_db,则不需要包含neo4j-communitygem。它没有加载,它与服务器模式下的 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 上的人会提供帮助。

于 2015-04-21T19:28:23.253 回答