Commit 48153491 LN

定时调用panaCim的keepAlive接口

1 个父辈 2b73af30
......@@ -47,6 +47,9 @@ import javax.servlet.http.HttpServletRequest;
import java.net.InetAddress;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
......@@ -83,7 +86,7 @@ public class PanaApiController extends BaseSmfApiListener {
@Autowired
private EquipConfigUtil equipConfigUtil;
ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(1);
@Autowired
public void setDataCache(DataCache dataCache) {
PanaApiController.dataCache = dataCache;
......@@ -96,8 +99,45 @@ public class PanaApiController extends BaseSmfApiListener {
}
log.info("从缓存 " + Constants.Cache_PanaCIMIP + " 中读取到PanaCIM 的注册IP【" + ip + ":" + port + "】");
}
//1 分钟之后执行,每20秒钟执行一次
scheduledThreadPool.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
if(ObjectUtil.isNotEmpty(PanaCIMIP)){
keepAlive();
}
}
}, 60, 20, TimeUnit.SECONDS);
}
public boolean keepAlive() {
try {
String apiName = dataCache.getConfigCache("api.name", "");
if (!isForThisApi(apiName)) {
return false;
}
String keepAliveUrl = getkeepAliveUrl();
if (ObjectUtil.isEmpty(keepAliveUrl)) {
log.error("未找到地址 keepAliveUrl,返回false");
return false;
}
Map<String, Object> result = HttpHelper.getJsonResult(keepAliveUrl, new HashMap<>(), 2000);
if (result != null && result.size() == 2) {
int code = (Integer) result.get("code");
String responseContent = result.get("responseContent").toString();
if (code == 200) {
lastKeepAliveTime = System.currentTimeMillis();
return true;
}
}
} catch (Exception ex) {
log.error(ex.toString());
}
return false;
}
@Autowired
protected IDataLogDao dataLogDao;
......@@ -116,7 +156,7 @@ public class PanaApiController extends BaseSmfApiListener {
if (lastKeepAliveTime <= -1||ObjectUtil.isEmpty(PanaCIMIP)) {
return false;
}
if ((System.currentTimeMillis() - lastKeepAliveTime) < (10 * 1000)) {
if ((System.currentTimeMillis() - lastKeepAliveTime) < (60 * 1000)) {
return true;
}
return false;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!