ruby neo4j 会话持久化
ruby neo4j session persistence
我在 Ruby CLI 应用程序中使用 neo4j。
每次从命令行 运行 命令时,都会重新建立 "session = Neo4j::Session.open(:server_db)",这非常慢。
有没有办法坚持 "session" 第一次使用并在后续从命令行调用命令时重新使用它。
此致
neo4j-core
gem 使用 faraday
gem 建立持久的 HTTP 连接。这是在这里定义的:
https://github.com/neo4jrb/neo4j-core/blob/master/lib/neo4j-server/cypher_session.rb#L24
此处使用 NetHttpPersistent
法拉第适配器:
https://github.com/lostisland/faraday/blob/master/lib/faraday/adapter/net_http_persistent.rb
我认为它使用了 net-http-persistent
库:
https://github.com/drbrain/net-http-persistent
在 Session
上调用 open
时,您可以传入第二个参数 Hash of options。您可以在该散列中指定一个 connection
键,这是您创建的法拉第连接对象。 可能 允许您在某处保存一些 token/string 并且每次都从那里重新加载法拉第对象以从它停止的地方继续会话。
另一个选择是在后台有一个守护进程,它打开了连接
我在 Ruby CLI 应用程序中使用 neo4j。
每次从命令行 运行 命令时,都会重新建立 "session = Neo4j::Session.open(:server_db)",这非常慢。
有没有办法坚持 "session" 第一次使用并在后续从命令行调用命令时重新使用它。
此致
neo4j-core
gem 使用 faraday
gem 建立持久的 HTTP 连接。这是在这里定义的:
https://github.com/neo4jrb/neo4j-core/blob/master/lib/neo4j-server/cypher_session.rb#L24
此处使用 NetHttpPersistent
法拉第适配器:
https://github.com/lostisland/faraday/blob/master/lib/faraday/adapter/net_http_persistent.rb
我认为它使用了 net-http-persistent
库:
https://github.com/drbrain/net-http-persistent
在 Session
上调用 open
时,您可以传入第二个参数 Hash of options。您可以在该散列中指定一个 connection
键,这是您创建的法拉第连接对象。 可能 允许您在某处保存一些 token/string 并且每次都从那里重新加载法拉第对象以从它停止的地方继续会话。
另一个选择是在后台有一个守护进程,它打开了连接