diff --git a/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/ctrl/JavaRestartCtrl.java b/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/ctrl/JavaRestartCtrl.java
index 1893794..08aa5d5 100644
--- a/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/ctrl/JavaRestartCtrl.java
+++ b/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/ctrl/JavaRestartCtrl.java
@@ -66,28 +66,28 @@ public class JavaRestartCtrl {
             response.setPageSize(req.getPageSize());
             response.setTotal(total);
 
-            if(subProjects!=null&&subProjects.size()>0){
-                int size=subProjects.size();
-                int begin=1;
-                //节省时间,启动线程先加载着
-                for(int i=begin;i<size;i++){
-                    String name=subProjects.get(i).getName();
-                    new Thread(new Runnable(){
-                        public void run(){
-                            restartService.resetStatusInfos(name);
-                        }
-                    }).start();
-                }
-
-                //先把前面的一两个加载出来
-                for(int i=0;i<begin;i++){
-                    if(i<size){
-                        String name=subProjects.get(i).getName();
-                        restartService.resetStatusInfos(name);
-                    }
-                }
-
-            }
+//            if(subProjects!=null&&subProjects.size()>0){
+//                int size=subProjects.size();
+//                int begin=1;
+//                //节省时间,启动线程先加载着
+//                for(int i=begin;i<size;i++){
+//                    String name=subProjects.get(i).getName();
+//                    new Thread(new Runnable(){
+//                        public void run(){
+//                            restartService.resetStatusInfos(name);
+//                        }
+//                    }).start();
+//                }
+//
+//                //先把前面的一两个加载出来
+//                for(int i=0;i<begin;i++){
+//                    if(i<size){
+//                        String name=subProjects.get(i).getName();
+//                        restartService.resetStatusInfos(name);
+//                    }
+//                }
+//
+//            }
 
         } catch (Exception e) {
             log.error("getProjectInfos~", e);
diff --git a/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/service/impl/JavaProjectStatusLoaderTask.java b/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/service/impl/JavaProjectStatusLoaderTask.java
index d63050e..f797ec0 100644
--- a/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/service/impl/JavaProjectStatusLoaderTask.java
+++ b/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/service/impl/JavaProjectStatusLoaderTask.java
@@ -2,16 +2,24 @@ package com.monitor.switchs.projectRestart.service.impl;
 
 import com.monitor.cloudtools.util.CommodUtil;
 import com.monitor.common.ProjectConstant;
+import com.monitor.common.service.HttpRestClientService;
 import com.monitor.model.domain.JavaProjectStatus;
+import com.monitor.model.response.BaseResponse;
 import com.monitor.switchs.SwitchCmdUtil;
 import com.monitor.switchs.projectRestart.common.IpStatus;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.stereotype.Component;
 
+import javax.management.*;
+import javax.management.remote.JMXConnector;
+import javax.management.remote.JMXConnectorFactory;
+import javax.management.remote.JMXServiceURL;
+import java.io.IOException;
+import java.net.MalformedURLException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -20,9 +28,10 @@ import java.util.concurrent.ConcurrentHashMap;
 @Component
 @EnableScheduling
 public class JavaProjectStatusLoaderTask {
-
-    private static final ConcurrentHashMap<String,List<JavaProjectStatus>> map = new ConcurrentHashMap();
-    private SimpleDateFormat sDateFormat   =   new   SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+    @Autowired
+    private HttpRestClientService httpRestClient;
+    private static final ConcurrentHashMap<String, List<JavaProjectStatus>> map = new ConcurrentHashMap();
+    private SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
     /*@Scheduled(cron = "0/30 * * * * ?")
     private void fetchJavaProjectStauts() {
@@ -39,35 +48,35 @@ public class JavaProjectStatusLoaderTask {
         }
     }*/
 
-    public List<JavaProjectStatus> getStatusInfosFromCache(String projectName){
-        Date now=new java.util.Date();
-        if(map.contains(projectName)){
-            List<JavaProjectStatus> cachedStatus=map.get(projectName);
+    public List<JavaProjectStatus> getStatusInfosFromCache(String projectName) {
+        Date now = new java.util.Date();
+        if (map.contains(projectName)) {
+            List<JavaProjectStatus> cachedStatus = map.get(projectName);
             //10秒以内的数据
-            if(cachedStatus!=null&&cachedStatus.size()>0&&(now.getTime()-cachedStatus.get(0).getRefreshTs())<=10*1000){
+            if (cachedStatus != null && cachedStatus.size() > 0 && (now.getTime() - cachedStatus.get(0).getRefreshTs()) <= 10 * 1000) {
                 return cachedStatus;
             }
         }
         return resetStatusInfosToCache(projectName);
     }
 
-    public List<JavaProjectStatus> resetStatusInfosToCache(String projectName){
-        List<JavaProjectStatus> statuses=getStatusInfos(projectName);
-        if(statuses!=null&&statuses.size()>0){
-            Date now=new java.util.Date();
-            String   dateStr   =   sDateFormat.format(now);
-            for(JavaProjectStatus javaProjectStatus:statuses){
+    public List<JavaProjectStatus> resetStatusInfosToCache(String projectName) {
+        List<JavaProjectStatus> statuses = getStatusInfos(projectName);
+        if (statuses != null && statuses.size() > 0) {
+            Date now = new java.util.Date();
+            String dateStr = sDateFormat.format(now);
+            for (JavaProjectStatus javaProjectStatus : statuses) {
                 javaProjectStatus.setRefreshDateTime(dateStr);
                 javaProjectStatus.setRefreshTs(now.getTime());
             }
         }
-        map.put(projectName,statuses);
+        map.put(projectName, statuses);
         return statuses;
     }
 
     private List<JavaProjectStatus> getStatusInfos(String projectName) {
         List<JavaProjectStatus> javaProjectStatusList = new ArrayList<>();
-        String commond = "ssh master@"+ ProjectConstant.DEPLOY_IP+" sh /home/master/.java_pm/java_restart.sh checkstatus  mix " + projectName;
+        String commond = "ssh master@" + ProjectConstant.DEPLOY_IP + " sh /home/master/.java_pm/java_restart.sh checkstatus  mix " + projectName;
         List<String> list = CommodUtil.exeReturnList(commond);
         for (String string : list) {
             String[] array = string.split("@@");
@@ -79,7 +88,7 @@ public class JavaProjectStatusLoaderTask {
             javaProjectStatus.setCloud(array[0]);
             javaProjectStatus.setIp(array[1].split("@")[1]);
             javaProjectStatus.setStatus(array[2]);
-            if (IpStatus.contain(projectName, array[1].split("@")[1])){
+            if (IpStatus.contain(projectName, array[1].split("@")[1])) {
                 javaProjectStatus.setStatus("2");//正在重启
             }
             javaProjectStatus.setLastStart(array[3]);
@@ -88,4 +97,143 @@ public class JavaProjectStatusLoaderTask {
         return javaProjectStatusList;
     }
 
+
+    public List<JavaProjectStatus> getStatusInfosByHttp(String projectName) {
+        List<JavaProjectStatus> javaProjectStatusList = new ArrayList<>();
+        List<String> projectIps = getProjectIps("qcloud", projectName);
+        for (String stringIp : projectIps) {
+            JavaProjectStatus javaProjectStatus = new JavaProjectStatus();
+            javaProjectStatus.setName(projectName);
+            javaProjectStatus.setCloud("qcloud");
+            javaProjectStatus.setIp(stringIp);
+            javaProjectStatus.setStatus(checkService(stringIp, projectName));
+            javaProjectStatus.setLastStart(getStartTime(projectName, stringIp));
+            javaProjectStatusList.add(javaProjectStatus);
+        }
+        return javaProjectStatusList;
+    }
+
+    public String checkService(String ip, String projectName) {
+        String servicePort = getServicePort(projectName, "service");
+        if (StringUtils.isBlank(servicePort) || StringUtils.isBlank(ip)) {
+            return "2";
+        }
+        String url = "http://" + ip + ":" + servicePort + "/" + projectName + "/common/ok.jsp";
+        String myResponse = httpRestClient.get(url, null, String.class);
+        if (Objects.nonNull(myResponse) || myResponse.contains("Resources ok"))
+            return "1";
+        else
+            return "2";
+    }
+
+    public String getServicePort(String serviceName, String type) {
+        Map<String, String> context_port_map = new HashMap<>();
+        context_port_map.put("yoho-users", "8081,9001");
+        context_port_map.put("yoho-sns", "8082,9602");
+        context_port_map.put("yohobuy-product", "8083,9603");
+        context_port_map.put("yohobuy-order", "8084,9604");
+        context_port_map.put("yohobuy-promotion", "8085,9605");
+        context_port_map.put("yoho-message", "8086,9606");
+        context_port_map.put("yohobuy-resources", "8087,9607");
+        context_port_map.put("yohobuy-platform", "8088,9608");
+        context_port_map.put("yohobuy-union", "8088,0000");
+        context_port_map.put("yohobuy-activity", "8090,0000");
+        context_port_map.put("yohobuy-bigdata", "8091,0000");
+        context_port_map.put("yohobuy-brower", "8092,9612");
+        context_port_map.put("yohobuy-crm", "8093,9623");
+        context_port_map.put("yohobuy-wechat", "8094,9614");
+        context_port_map.put("yoho-social", "8095,9615");
+        context_port_map.put("uic", "8096,9616");
+        context_port_map.put("yohobuy-risk", "8097,0000");
+
+        context_port_map.put("pfpromotion", "8098,0000");
+        context_port_map.put("platform-cms", "8099,9609");
+        context_port_map.put("pfproduct", "8100,0000");
+        context_port_map.put("pfmaketing", "8101,0000");
+        context_port_map.put("pfseller", "8102,0000");
+
+        context_port_map.put("ufoPlatform", "8088,9608");
+        context_port_map.put("ufo-gateway", "8080,9600");
+
+        context_port_map.put("yoho-push", "8089,9629");
+        context_port_map.put("yoho-inbox", "8062,9622");
+        context_port_map.put("yoho-msgcenter-wechat", "8061,8161");
+
+        context_port_map.put("yoho-reviewed", "8063,9623");
+        context_port_map.put("yoho-erp-gateway", "8080,9609");
+        context_port_map.put("yoho-gateway", "8080,9600");
+        context_port_map.put("cms_push", "8089,0000");
+        context_port_map.put("yohobuy-task", "8084,9604");
+        context_port_map.put("yoho-message-controller", "8086,9627");
+        context_port_map.put("yoho-message-sender", "8086,9625");
+        context_port_map.put("yoho-search-consumer", "8088,9608");
+        context_port_map.put("yoho-search-producer", "8089,9609");
+        context_port_map.put("yoho-search-adaptor", "8085,0000");
+        context_port_map.put("yohomars-search-service", "8080,9900");
+
+        String port = "";
+        if (context_port_map.containsKey(serviceName)) {
+            String ports = context_port_map.get(serviceName);
+            if ("service".equals(type) && ports.split(",").length > 1) {
+                port = ports.split(",")[0];
+            }
+            if ("jmx".equals(type) && ports.split(",").length > 1) {
+                if (!"0000".equals(ports.split(",")[1]))
+                    port = ports.split(",")[1];
+            }
+        }
+        return port;
+    }
+
+    private List<String> getProjectIps(String cloud, String projectName) {
+        List<String> javaProjectIpList = new ArrayList<>();
+        String commond = "ssh master@" + ProjectConstant.DEPLOY_IP + " sh /home/master/.java_pm/java_restart.sh getIPs " + cloud + " " + projectName;
+        List<String> list = CommodUtil.exeReturnList(commond);
+
+        for (String string : list) {
+            if (string.contains("@@") && (string.contains("master"))) {
+                String[] array = string.split("@@");
+                for (int i = 1; i < array.length; i++) {
+                    if (Objects.nonNull(array[i]) && array[i].split("@").length > 1)
+                        javaProjectIpList.add(array[i].split("@")[1]);
+                }
+            }
+        }
+        return javaProjectIpList;
+    }
+
+    public String getStartTime(String serviceName, String ip) {
+        String beginTime = "0000-00-00 00:00:00";
+        String jmxPort = getServicePort(serviceName, "jmx");
+        if (StringUtils.isNotBlank(jmxPort)) {
+            try {
+                String jmxURL = "service:jmx:rmi:///jndi/rmi://" + ip + ":" + jmxPort + "/jmxrmi";//tomcat jmx url
+                JMXServiceURL serviceURL = new JMXServiceURL(jmxURL);
+                Map map = new HashMap();
+                JMXConnector connector = JMXConnectorFactory.connect(serviceURL, map);
+                MBeanServerConnection mbsc = connector.getMBeanServerConnection();
+                ObjectName runtimeObjName = new ObjectName("java.lang:type=Runtime");
+                Date starttime = new Date((Long) mbsc.getAttribute(runtimeObjName, "StartTime"));
+                SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                beginTime = df.format(starttime);
+            } catch (MalformedURLException e) {
+                e.printStackTrace();
+            } catch (IOException e) {
+                e.printStackTrace();
+            } catch (ReflectionException e) {
+                e.printStackTrace();
+            } catch (InstanceNotFoundException e) {
+                e.printStackTrace();
+            } catch (AttributeNotFoundException e) {
+                e.printStackTrace();
+            } catch (MBeanException e) {
+                e.printStackTrace();
+            } catch (MalformedObjectNameException e) {
+                e.printStackTrace();
+            }
+        }
+
+
+        return beginTime;
+    }
 }
diff --git a/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/service/impl/RestartServiceImpl.java b/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/service/impl/RestartServiceImpl.java
index 6722cdd..09d7152 100644
--- a/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/service/impl/RestartServiceImpl.java
+++ b/monitor-service-switch/src/main/java/com/monitor/switchs/projectRestart/service/impl/RestartServiceImpl.java
@@ -35,7 +35,8 @@ public class RestartServiceImpl implements RestartService {
 
     @Override
     public List<JavaProjectStatus> getStatusInfos(String project) {
-        return javaProjectStatusLoaderTask.getStatusInfosFromCache(project);
+//        return javaProjectStatusLoaderTask.getStatusInfosFromCache(project);
+        return javaProjectStatusLoaderTask.getStatusInfosByHttp(project);
     }
 
     @Override