代码之家  ›  专栏  ›  技术社区  ›  Nicholas

有没有办法确定neo4j数据库是否已经关闭?

  •  0
  • Nicholas  · 技术社区  · 11 年前

    标题说明了一切。我知道你可以打电话给 graphDb.shutdown() 在数据库上,它说在那之后应该删除所有引用,但有没有一种程序化的方法来确定图形数据库的状态,看看它是否关闭了?

    3 回复  |  直到 11 年前
        1
  •  2
  •   user2134086 user2134086    10 年前

    尝试 GraphDatabaseService.isAvailable(long timeout)

    “使用此方法可以检查数据库是否处于可用状态。如果数据库当前不处于可用状态,您可以提供一个超时等待它变为可用状态。 如果数据库已经关闭,则立即返回false。 "

    我相信超时是以毫秒为单位的。

        2
  •  1
  •   tstorms    11 年前

    我认为你能得到它的唯一方法是通过反射。例如,对于EmbeddedGraphDatabase,您可以这样获得它:

    final Field life = InternalAbstractGraphDatabase.class.getDeclaredField("life");
    life.setAccessible(true);
    System.out.println(((LifeSupport) life.get(db)).getStatus());
    
        3
  •  -1
  •   ulkas    11 年前

    在linux服务器控制台中,可以使用以下命令:(也可以在windows上使用)

    neo4j-community-1.9.M04/bin$ ./neo4j status
    Neo4j Server is not running
    

    在REST中使用任何更高级别的语言时,您可能只想简单地 curl wget 实例通常在其上运行的特定url。如果你没有得到任何数据,你就知道它坏了。