kongdeqiang
2026-04-13 4b192d15908105c63326937d0b1cfd7aa7523c40
提交
2个文件已修改
67 ■■■■■ 已修改文件
src/main/java/com/wgcloud/service/OspfInfoService.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/wgcloud/task/ScheduledTask.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/wgcloud/service/OspfInfoService.java
@@ -188,6 +188,64 @@
        }
    }
    public void getPyRouterStatus() {
        List<OspfInfo> ospfInfos = OspfInfoMapper.selectAllByParams(null);
        for (OspfInfo ospfInfo : ospfInfos) {
            String command = "display ospf peer "+ospfInfo.getHostname();
            Map<String,Object> map = new HashMap<>();
            map.put("command",command);
            map.put("username",ospfInfo.getMonitorUsername());
            map.put("password",ospfInfo.getMonitorPassword());
            map.put("host",ospfInfo.getMonitorIp());
            if(ospfInfo.getMonitorRemoteType().equals("TELNET")){
                map.put("protocol","telnet");
                map.put("port",23);
            }else if(ospfInfo.getMonitorRemoteType().equals("SSH")){
                map.put("protocol","ssh");
                map.put("port",22);
            }
            map.put("ospfIp",ospfInfo.getHostname());
            String str = JSON.toJSONString(map);
            //System.out.println(str);
            try {
                String url = "http://"+remoteHost+":"+remotePort+"/exec-h3c";
                String responseBody = HttpRequest.post(url)
                        .timeout(50000)
                        .body(str)
                        .execute()
                        .body();
                System.out.println(responseBody);
                String result = responseBody.replaceAll("^\"|\"$", "");
                if(result.equals("1")){
                    HashMap<String, Object> hashMap = new HashMap<>();
                    hashMap.put("state","1");
                    hashMap.put("hostname",ospfInfo.getHostname());
                    List<OspfErrorLog> ospfErrorLogs = errorLogMapper.selectAllByParams(hashMap);
                    if(ospfErrorLogs==null||ospfErrorLogs.size()==0){
                        OspfErrorLog ospfErrorLog = new OspfErrorLog();
                        ospfErrorLog.setInfoContent(ospfInfo.getInfoContent());
                        ospfErrorLog.setHostname(ospfInfo.getHostname());
                        ospfErrorLog.setState("1");
                        ospfErrorLog.setId(UUIDUtil.getUUID());
                        ospfErrorLog.setCreateTime(DateUtil.getNowTime());
                        try {
                            errorLogMapper.save(ospfErrorLog);
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                }
                ospfInfo.setState(result);
                OspfInfoMapper.updateById(ospfInfo);
            } catch (Exception e) {
                e.printStackTrace();
                ospfInfo.setState("1");
                OspfInfoMapper.updateById(ospfInfo);
            }
        }
    }
    /**
     * 获取OSPF接口状态
     */
src/main/java/com/wgcloud/task/ScheduledTask.java
@@ -85,7 +85,8 @@
    public void ospfDownCheckTask() {
        logger.info("ospf链路检测任务开始------------" + DateUtil.getDateTimeString(new Date()));
        //ospfInfoService.getDetailedOspfNeighborInfo();
        ospfInfoService.getRouterStatus();
        //ospfInfoService.getRouterStatus();
        ospfInfoService.getPyRouterStatus();
        logger.info("ospf链路检测任务结束------------" + DateUtil.getDateTimeString(new Date()));
    }
@@ -93,7 +94,7 @@
     * 5秒后执行,之后每24小时刷新一次
     * 检测license
     */
    @Scheduled(initialDelay = 5000L, fixedRate = 24 * 60 * 60 * 1000)
    //@Scheduled(initialDelay = 5000L, fixedRate = 24 * 60 * 60 * 1000)
    public void validateLicense() {
        logger.info("validateLicense------------" + DateUtil.getDateTimeString(new Date()));
        try {
@@ -126,7 +127,7 @@
     * 20秒后执行,之后每6分钟刷新一次
     * 初始化一些任务
     */
    @Scheduled(initialDelay = 20000L, fixedRate = 6 * 60 * 1000)
    //@Scheduled(initialDelay = 20000L, fixedRate = 6 * 60 * 1000)
    public void initTask() {
        logger.info("initTask------------" + DateUtil.getDateTimeString(new Date()));
        try {
@@ -249,7 +250,7 @@
     * 90秒后执行,之后每隔15分钟执行, 单位:ms。
     * 检测数通PING设备
     */
    @Scheduled(initialDelay = 90000L, fixedRateString = "${base.dceTimes}" + "000")
    //@Scheduled(initialDelay = 90000L, fixedRateString = "${base.dceTimes}" + "000")
    public void dceInfoTask() {
        if (!StaticKeys.NODE_MASTER.equals(commonConfig.getNodeType())) {
            logger.info("slave节点不执行检测数通设备PING任务");