Commit 4fef44be authored by 赵啸非's avatar 赵啸非

添加php健康度检测

parent fe629bcf
......@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.mortals.framework.common.Rest;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.service.ITask;
import com.mortals.framework.service.ITaskExcuteService;
......@@ -36,114 +37,11 @@ public class CheckProjectStatusTaskImpl implements ITaskExcuteService {
@Autowired
private SetupProjectService setupProjectService;
@Value("${project.nacosUrl}")
private String nacosUrl;
@Override
public void excuteTask(ITask task) throws AppException {
log.info("检测项目运行状态任务");
List<SetupProjectEntity> setupProjectEntities = setupProjectService.find(new SetupProjectEntity());
for (SetupProjectEntity setupProjectEntity : setupProjectEntities) {
if (ProjectTypeEnum.后端.getValue() == setupProjectEntity.getProjectType()) {
//todo http://192.168.0.250:8848/nacos/v1/ns/catalog/instances?message=true&serviceName=bill-manager&clusterName=DEFAULT&groupName=DEFAULT_GROUP&pageSize=10&pageNo=1&namespaceId=smart-gov
String serverUrl = nacosUrl + "/nacos/v1/ns/catalog/instances?message=true&serviceName=" + setupProjectEntity.getProjectCode() + "&clusterName=DEFAULT&groupName=DEFAULT_GROUP&pageSize=10&pageNo=1&namespaceId=smart-gov";
String resp = "";
try {
resp = HttpUtil.get(serverUrl);
NacosResponse nacosResponse = JSON.parseObject(resp, new TypeReference<NacosResponse>() {
});
int count = nacosResponse.getCount();
if (count > 0) {
ListItem item = nacosResponse.getList().get(0);
boolean healthy = item.isHealthy();
if (healthy) {
setupProjectEntity.setProjectStatus(ProjectStatusEnum.运行中.getValue());
} else {
setupProjectEntity.setProjectStatus(ProjectStatusEnum.停止.getValue());
}
setupProjectEntity.setUpdateTime(new Date());
setupProjectService.update(setupProjectEntity);
}
log.info("服务实例详细查询url:{},返回:{},naocsResponse:{}", serverUrl, resp, JSON.toJSONString(nacosResponse));
} catch (JSONException e) {
log.info("json反序列化异常:{},返回:{}", e.getMessage(), resp);
if (setupProjectEntity.getProjectStatus() > ProjectStatusEnum.未部署.getValue()) {
setupProjectEntity.setProjectStatus(ProjectStatusEnum.停止.getValue());
setupProjectEntity.setUpdateTime(new Date());
setupProjectService.update(setupProjectEntity);
}
}catch (Exception e){
log.error("发生异常:{}",e.getMessage());
}
} else if (ProjectTypeEnum.前端.getValue() == setupProjectEntity.getProjectType()) {
//todo 前端 判断路径文件是否存在 如果存在 则代表运行
String projectPath = setupProjectEntity.getProjectPath();
String projectCode = setupProjectEntity.getProjectCode();
String destPath = projectPath + File.separator + projectCode + File.separator + "dist" + File.separator + "index.html";
File uiFile = new File(destPath);
if (uiFile.exists()) {
setupProjectEntity.setProjectStatus(ProjectStatusEnum.运行中.getValue());
setupProjectEntity.setUpdateTime(new Date());
setupProjectService.update(setupProjectEntity);
} else {
setupProjectEntity.setProjectStatus(ProjectStatusEnum.未部署.getValue());
setupProjectEntity.setUpdateTime(new Date());
setupProjectService.update(setupProjectEntity);
}
log.info("前端资源路径:{},是否存在:{}", destPath, uiFile.exists());
} else if (ProjectTypeEnum.PHP后端.getValue() == setupProjectEntity.getProjectType()) {
//todo 前端 判断路径文件是否存在 如果存在 则代表运行
if (ProductDisEnum.排号系统PHP后端.getValue().equals(setupProjectEntity.getProjectCode())) {
String serverUrl = "http://127.0.0.1:11078/zwfw_api/api/upload/dictionary";
String resp = "";
try {
resp = HttpUtil.get(serverUrl);
JSON.parseObject(resp);
setupProjectEntity.setProjectStatus(ProjectStatusEnum.运行中.getValue());
setupProjectEntity.setUpdateTime(new Date());
setupProjectService.update(setupProjectEntity);
} catch (JSONException e) {
log.info("json反序列化异常:{},返回:{}", e.getMessage(), resp);
if (setupProjectEntity.getProjectStatus() > ProjectStatusEnum.未部署.getValue()) {
setupProjectEntity.setProjectStatus(ProjectStatusEnum.停止.getValue());
setupProjectEntity.setUpdateTime(new Date());
setupProjectService.update(setupProjectEntity);
}
}catch (Exception e){
log.error("发生异常:{}",e.getMessage());
}
}
if (ProductDisEnum.窗口服务行为监察PHP后端.getValue().equals(setupProjectEntity.getProjectCode())) {
String serverUrl = "http://127.0.0.1:11030/admin/waited/verify";
String resp = "";
try {
resp = HttpUtil.get(serverUrl);
JSON.parseObject(resp);
setupProjectEntity.setProjectStatus(ProjectStatusEnum.运行中.getValue());
setupProjectEntity.setUpdateTime(new Date());
setupProjectService.update(setupProjectEntity);
} catch (JSONException e) {
log.info("json反序列化异常:{},返回:{}", e.getMessage(), resp);
if (setupProjectEntity.getProjectStatus() > ProjectStatusEnum.未部署.getValue()) {
setupProjectEntity.setProjectStatus(ProjectStatusEnum.停止.getValue());
setupProjectEntity.setUpdateTime(new Date());
setupProjectService.update(setupProjectEntity);
}
}catch (Exception e){
log.error("发生异常:{}",e.getMessage());
}
}
} else {
}
}
setupProjectService.updateProjectsStatus();
log.info("检测项目运行状态任务完毕!");
}
......
......@@ -27,4 +27,10 @@ public interface SetupProjectService extends ICRUDService<SetupProjectEntity,Lon
Rest<String> unProjectZip(MultipartFile file, Context context);
/**
* 更新项目状态
* @return
*/
Rest<String> updateProjectsStatus();
}
\ No newline at end of file
......@@ -514,6 +514,9 @@ public class SetupProjectController extends BaseCRUDJsonBodyMappingController<Se
//初始化项目
SetupProjectEntity setupProjectEntity = new SetupProjectEntity();
this.service.distributeInit(setupProjectEntity, getContext());
this.service.updateProjectsStatus();
recordSysLog(request, busiDesc + " 【成功】");
} catch (Exception e) {
code = VALUE_RESULT_FAILURE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment