1
我們已經有了一個線程檢查,如果我們的數據庫已經準備就緒。線程在數據庫可用時退出。但是在某些情況下,在數據庫準備就緒之前,Wildfly服務器正在關閉。在這種情況下,Wildfly將不會關閉,因爲此線程仍然存在。關機鉤/事件Wildfly/JBoss的
我們正在尋找告知該線或Wildfly服務器的方法可行,檢查狀態(運行,關閉,啓動等),以阻止該線程的方法。
有什麼想法?
我們已經有了一個線程檢查,如果我們的數據庫已經準備就緒。線程在數據庫可用時退出。但是在某些情況下,在數據庫準備就緒之前,Wildfly服務器正在關閉。在這種情況下,Wildfly將不會關閉,因爲此線程仍然存在。關機鉤/事件Wildfly/JBoss的
我們正在尋找告知該線或Wildfly服務器的方法可行,檢查狀態(運行,關閉,啓動等),以阻止該線程的方法。
有什麼想法?
你或許應該設置Thread.setDaemon(true)
。
至於如果WildFly運行,你可以嘗試連接一個ModelControllerClient
並檢查服務器的狀態檢測。如果它沒有連接它可能會下降。或者至少管理連接已關閉。
例子:
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? –