neo4jrb 如何重置打开事务的事务超时
neo4jrb how to reset transaction timeout of an open transaction
目前正在使用 neo4j-community-2.1.7
我了解该工具已包含在该版本中。
无法在 ruby 文档中找到对它的任何引用。
如果我能对如何使用 neo4jrb 重置超时有一些指导,我将不胜感激。
问候
罗斯
我不知道有什么方法可以重置打开事务的事务超时。也许更熟悉 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.rb.
的 initialize
和 start
方法中看到它
回复:评论信息
如果您使用 :server_db
,则不需要包含 neo4j-community
gem。它未加载,在服务器模式下与 Neo4j 不兼容。
这是我第一次看到您提供的 link,很高兴知道它就在那里。我们不会在 Neo4j.rb 中公开这样做的方法,也不会,因为它需要一些我们无法支持的线程魔法。如果您想手动执行此操作,我能告诉您的最好方法是您可以通过这种方式获取当前交易 ID:
tx = Neo4j::Transaction.new
# do stuff and before your long-running query...
tx.resource_data[:commit].split('/')[-2]
这将 return 您可以在 POST 中使用的交易编号,如他们的支持文档中所述。
如果您想帮助解决长 运行 Cypher 查询的问题,我相信 SO 上的人会提供帮助。
目前正在使用 neo4j-community-2.1.7
我了解该工具已包含在该版本中。
无法在 ruby 文档中找到对它的任何引用。
如果我能对如何使用 neo4jrb 重置超时有一些指导,我将不胜感激。
问候 罗斯
我不知道有什么方法可以重置打开事务的事务超时。也许更熟悉 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.rb.
的initialize
和 start
方法中看到它
回复:评论信息
如果您使用 :server_db
,则不需要包含 neo4j-community
gem。它未加载,在服务器模式下与 Neo4j 不兼容。
这是我第一次看到您提供的 link,很高兴知道它就在那里。我们不会在 Neo4j.rb 中公开这样做的方法,也不会,因为它需要一些我们无法支持的线程魔法。如果您想手动执行此操作,我能告诉您的最好方法是您可以通过这种方式获取当前交易 ID:
tx = Neo4j::Transaction.new
# do stuff and before your long-running query...
tx.resource_data[:commit].split('/')[-2]
这将 return 您可以在 POST 中使用的交易编号,如他们的支持文档中所述。
如果您想帮助解决长 运行 Cypher 查询的问题,我相信 SO 上的人会提供帮助。