0

我开发了一个连接到 Neo4j 并创建一堆节点的应用程序。我还使用 Graphaware 为 Neo4j 开发了一个插件。这两个都在单独的 docker 中运行(一个用于代码,一个用于带有插件的 Neo4j)。

现在,由于我自动同时启动这些容器,代码应该等待 Neo4j 完全启动,然后再尝试创建节点。为此,我通过尝试使用螺栓协议(Neo4j 的驱动程序)连接到 Neo4j 来测试它的可用性。

我遇到的问题是,似乎 Neo4j 在完全加载插件之前就开始接受传入的连接。结果,在 Neo4j 实际准备好之前建立了连接,并且出现了问题(我不知道是什么)并且整个代码停止了(我认为这个问题并不重要),这一切都是因为连接是在插件已加载。我知道,因为如果我手动延迟连接,一切都会顺利进行。

所以我的问题是如何确保 Neo4j 在开始连接之前(完全)预热?现在我正在检查管理的可用性(http://localhost:7474)但是如果没有管理,首先呢?

4

1 回答 1

0

目前你会发现你可以将管理界面保持在本地,但实际上并不能关闭它(除非你是在嵌入式模式下工作),所以等待http://localhost:7474是一个不错的方法. 如果你想更细粒度,可以查看你的安装\logs\debug.log

2017-07-27 03:58:53.643+0000 INFO [o.n.k.AvailabilityGuard] Fulfilling of requirement makes database available: Database available
2017-07-27 03:58:53.644+0000 INFO [o.n.k.i.f.GraphDatabaseFacadeFactory] Database is now ready

希望这可以帮助。

问候,汤姆

于 2017-07-27T04:54:57.917 回答