如何知道Neo4j何时准备好服务

时间:2017-07-27 04:13:49

标签: neo4j graphaware

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

现在,由于我自动同时启动这些容器,代码应该等待Neo4j在尝试创建节点之前完全启动。为此,我尝试使用bolt协议(Neo4j' s驱动程序)连接到Neo4j,从而测试Neo4j的可用性。

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

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

1 个答案:

答案 0 :(得分:0)

目前您发现可以将管理界面保持在本地,但实际上您无法将其关闭(除非您在嵌入模式下工作),因此等待{{ 3}}是一种很好的方法。如果您想要更精细,可以检查您的安装 \ logs \ debug.log

let pdfData = NSMutableData()
UIGraphicsBeginPDFContextToData(pdfData, CGRect(x: 0, y: 0, width: 1024, height: 768), nil)
guard let pdfContext = UIGraphicsGetCurrentContext() else { return }
for view in PdfPages {
     UIGraphicsBeginPDFPage()
     view.layer.renderInContext(pdfContext)
 }
 UIGraphicsEndPDFContext()

希望这有帮助。

此致 汤姆