【发布时间】:2016-03-17 22:41:28
【问题描述】:
Heroku suggests using it,但是我在本地开发环境中看到了这些问题
- 我将 MRI 2.2.3 和 neo4j.rb 6.0.0(ActiveNode 模型)与 HTTP 适配器一起使用
- 我也在使用 Neo4j 2.2.5 和 jdk1.7.0_51-b53 的 OSX 10.11.2
我已经尝试了很多方法来在分叉后重新打开连接,这是我能想到的最接近的:
cfg = Rails.application.config.neo4j
Neo4j::Session.set_current(Neo4j::Session.open(cfg.session_type, cfg.session_path, cfg.session_options))
但是:
- 当我确实像这样重新打开连接时,我一直遇到问题,好像法拉第两次返回请求的结果
- 基本上neo4j.rb调用连接URL(http://localhost:7474/)获取数据URL,然后调用数据URL。但是其他工作人员的连接 URL 有时会返回来自数据 URL 的响应,然后当它尝试实际查询 Neo4j 时会爆炸。
- 当我不重新打开连接时,虽然我没有模拟足够的负载来确定,但似乎一切正常
我怀疑 neo4j-core 会话是限制:neo4j-core on github,我应该忘记在 fork 后重新打开会话,因为 gem 只有一个共享会话。
但我对此不是 100% 有信心,而且大量的谷歌搜索没有给我任何帮助。谁能确认分叉后基本上不需要重新打开连接?
我也很想知道:
- 在其他地方发生了某种连接池
- 我需要以某种方式对其进行配置
- gem 本身需要将池作为功能/拉取请求
- 如果性能有问题,我应该只使用嵌入式模式
我还没有达到性能是一个问题的程度,但我想确保我知道我需要什么。谢谢。
其他配置:
- 这是在 MacBook pro 4 核 i7 = 8 处理器上
- 我正在使用 foreman 启动 2 个 puma 服务器,一个到端口 80,一个在端口 443
- 是的,我知道我应该通过 nginx 代理 :-) 这只是本地开发人员的快速设置
- 每台服务器有 2 个工作线程和 5 个线程 = 10 个线程(即线程 > # 个处理器)
【问题讨论】:
-
另外,如有任何问题/想法,请随时访问 Gitter:gitter.im/neo4jrb/neo4j
标签: ruby-on-rails heroku neo4j puma neo4j.rb