我在Play / Scala应用上使用Neo4j嵌入式数据库。我倾向于嵌入式版本,因为我想使用Neo4j的遍历框架,因此我可以使用广度优先遍历轻松创建JSON树。嵌入数据库的问题是,当我的Play应用程序热重载时,它会重新启动应用程序,从而我的应用程序关闭服务器(否则我会收到db file lock错误)。这导致编辑之间的20s浏览器重新加载。在编辑Play的Twirl html文件时,这尤其令人讨厌。
我搞砸了?我应该隐藏对服务后面的嵌入式数据库的调用吗?为了发展,这样做是否值得? AFAIK,Neo4j的RESTful服务不允许广度优先遍历。我愿意接受建议。感谢。答案 0 :(得分:0)
你必须确保你的事务都已关闭(可能通过添加一个负责处理的Java关闭处理程序使其安全),否则Neo将在关机时等待20秒以允许运行tx完成。
if (tx != null) tx.close();
db.shutdown();
在开发/测试时,您也可以使用内存ImpermanentGraphDatabase
,具体取决于org.neo4j:neo4j-kernel:test-jar:2.1.5
见: