播放Hot Reloading和Neo4j Embedded需要太长时间

时间:2014-10-12 05:16:58

标签: scala playframework neo4j graph-traversal

我在Play / Scala应用上使用Neo4j嵌入式数据库。我倾向于嵌入式版本,因为我想使用Neo4j的遍历框架,因此我可以使用广度优先遍历轻松创建JSON树。嵌入数据库的问题是,当我的Play应用程序热重载时,它会重新启动应用程序,从而我的应用程序关闭服务器(否则我会收到db file lock错误)。这导致编辑之间的20s浏览器重新加载。在编辑Play的Twirl html文件时,这尤其令人讨厌。

我搞砸了?我应该隐藏对服务后面的嵌入式数据库的调用吗?为了发展,这样做是否值得? AFAIK,Neo4j的RESTful服务不允许广度优先遍历。我愿意接受建议。感谢。

1 个答案:

答案 0 :(得分:0)

你必须确保你的事务都已关闭(可能通过添加一个负责处理的Java关闭处理程序使其安全),否则Neo将在关机时等待20秒以允许运行tx完成。

if (tx != null) tx.close();
db.shutdown();

在开发/测试时,您也可以使用内存ImpermanentGraphDatabase,具体取决于org.neo4j:neo4j-kernel:test-jar:2.1.5

见: