Jakarta ee Wildfly/JBoss中的关闭钩子/事件

Jakarta ee Wildfly/JBoss中的关闭钩子/事件,jakarta-ee,jboss,jboss7.x,wildfly,wildfly-8,Jakarta Ee,Jboss,Jboss7.x,Wildfly,Wildfly 8,我们有一个线程检查我们的数据库是否准备好了。当数据库可用时,线程将退出。但是,在某些情况下,Wildfly服务器会在数据库准备就绪之前关闭。在这种情况下,Wildfly不会关闭,因为该线程仍然处于活动状态 我们正在寻找一种方法来通知这个线程,或者检查Wildfly服务器的状态(运行、关闭、启动等)以停止该线程 有什么想法吗?您可能应该设置 至于检测WildFly是否正在运行,您可以尝试连接并检查服务器的状态。如果它没有连接,很可能会关机。或者至少管理连接已断开 例如: public static

我们有一个线程检查我们的数据库是否准备好了。当数据库可用时,线程将退出。但是,在某些情况下,Wildfly服务器会在数据库准备就绪之前关闭。在这种情况下,Wildfly不会关闭,因为该线程仍然处于活动状态

我们正在寻找一种方法来通知这个线程,或者检查Wildfly服务器的状态(运行、关闭、启动等)以停止该线程


有什么想法吗?

您可能应该设置

至于检测WildFly是否正在运行,您可以尝试连接并检查服务器的状态。如果它没有连接,很可能会关机。或者至少管理连接已断开

例如:

public static boolean isServerRunning() throws IOException {
    try (final ModelControllerClient client = ModelControllerClient.Factory.create(InetAddress.getLocalHost(), 9990)) {
        final ModelNode address = new ModelNode().setEmptyList();
        final ModelNode op = Operations.createReadAttributeOperation(address, "server-state");
        final ModelNode result = client.execute(op);
        if (Operations.isSuccessfulOutcome(result)) {
            final String state = Operations.readResult(result).asString();
            switch (state) {
                case "running":
                case "reload-required":
                case "restart-required":
                    return true;
            }
        }
        return false;
    }
}

没有任何@Resource可以直接注入到应用程序中吗?