重启先确保服务停止

main
LAPTOP-S9HJSOEB\昊天 2 years ago
parent 7bfdc3e179
commit 3c9a8db52c

@ -4,6 +4,7 @@ package com.leaper.pm2java.controller;
import com.leaper.pm2java.entity.AppServerEntity;
import com.leaper.pm2java.entity.Result;
import com.leaper.pm2java.service.Pm2JavaService;
import com.leaper.pm2java.service.impl.Pm2JavaServiceImpl;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -34,8 +35,8 @@ public class AppCenterController {
//重启
@PostMapping("restart")
public Result restart(@RequestBody AppServerEntity appServerEntity){
pm2JavaService.stop(appServerEntity);
pm2JavaService.start(appServerEntity);
pm2JavaService.restart(appServerEntity.getName());
return Result.success();
}

@ -40,4 +40,5 @@ public interface Pm2JavaService {
void sendLog(WebSocketConn webSocketConn);
void restart(String appServerEntity);
}

@ -360,4 +360,18 @@ public class Pm2JavaServiceImpl implements Pm2JavaService {
}
});
}
@Override
public void restart(String appServerInfo) {
stop(Pm2JavaServiceImpl.appServerInfoRecordMap.get(appServerInfo));
//确保服务停止后再启动
while (Pm2JavaServiceImpl.processBuilderMap.get(appServerInfo) != null) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
start(Pm2JavaServiceImpl.appServerInfoRecordMap.get(appServerInfo));
}
}

@ -16,10 +16,11 @@ public class CronTask {
@Scheduled(cron = "0 10 0 * * ?") // 每隔60秒执行一次任务
public void executeTask() {
for ( String appServerInfo : Pm2JavaServiceImpl.appServerInfoRecordMap.keySet()){
if (Pm2JavaServiceImpl.appServerInfoRecordMap.get(appServerInfo).getRestartInSmallHours() && Pm2JavaServiceImpl.processBuilderMap.get(appServerInfo)!= null){
pm2JavaService.stop(Pm2JavaServiceImpl.appServerInfoRecordMap.get(appServerInfo));
pm2JavaService.start(Pm2JavaServiceImpl.appServerInfoRecordMap.get(appServerInfo));
for (String appServerInfo : Pm2JavaServiceImpl.appServerInfoRecordMap.keySet()) {
if (Pm2JavaServiceImpl.appServerInfoRecordMap.get(appServerInfo).getRestartInSmallHours() != null
&& Pm2JavaServiceImpl.appServerInfoRecordMap.get(appServerInfo).getRestartInSmallHours()
&& Pm2JavaServiceImpl.processBuilderMap.get(appServerInfo) != null) {
pm2JavaService.restart(String appServerInfo);
}
}

Loading…
Cancel
Save