Files
elink-online-common/src/main/java/com/eactive/eai/util/HealthCheckRunner.java
T
Rinjae aacc1a389e init
2025-09-05 18:57:45 +09:00

45 lines
1.1 KiB
Java

package com.eactive.eai.util;
import java.util.TimerTask;
import org.apache.commons.lang3.StringUtils;
import com.eactive.eai.common.server.EAIServerManager;
import com.eactive.eai.common.server.EAIServerVO;
import com.eactive.eai.common.util.Logger;
// HealthCheckManager에 등록된 HealthCheck Beans를 일정 주기로 실행
public class HealthCheckRunner extends TimerTask {
static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
private HealthCheckManager manager;
public HealthCheckRunner() {
}
public void setHealthCheckManager(HealthCheckManager manager) {
this.manager = manager;
}
public void run() {
EAIServerManager mgr = EAIServerManager.getInstance();
EAIServerVO server = mgr.getEAIServer(mgr.getLocalServerName());
if (server == null) {
return;
}
String instId = server.getFailoverSvr();
if (StringUtils.isBlank(instId)) {
logger.warn("HealthCheckRunner] FailOver Server instance not set - " + mgr.getLocalServerName());
return;
}
boolean isAlive = ServerPingUtil.pingHost(instId);
if (isAlive) {
this.manager.addFailCount(instId, 0);
} else {
this.manager.addFailCount(instId, 1);
}
}
}