From 7bfdc3e1795cfa6dca000982f6d098e6e4dae0be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?LAPTOP-S9HJSOEB=5C=E6=98=8A=E5=A4=A9?= Date: Mon, 4 Dec 2023 16:25:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=87=8C=E6=99=A8=E9=87=8D?= =?UTF-8?q?=E5=90=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../leaper/pm2java/entity/AppServerInfo.java | 4 +++ .../service/impl/Pm2JavaServiceImpl.java | 1 + .../leaper/pm2java/service/task/CronTask.java | 27 +++++++++++++++++++ .../com/leaper/pm2java/util/MyService.java | 13 --------- 4 files changed, 32 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/leaper/pm2java/service/task/CronTask.java diff --git a/src/main/java/com/leaper/pm2java/entity/AppServerInfo.java b/src/main/java/com/leaper/pm2java/entity/AppServerInfo.java index 43ad6a4..d654c33 100644 --- a/src/main/java/com/leaper/pm2java/entity/AppServerInfo.java +++ b/src/main/java/com/leaper/pm2java/entity/AppServerInfo.java @@ -7,6 +7,8 @@ import lombok.Data; import java.io.Serializable; import java.time.LocalDateTime; +import static java.lang.Boolean.TRUE; + @Data public class AppServerInfo extends AppServerEntity implements Serializable { long cpuTime; @@ -30,6 +32,8 @@ public class AppServerInfo extends AppServerEntity implements Serializable { Integer reNumber =0; String sessionName; + + Boolean RestartInSmallHours=TRUE; int sessionNumber; boolean permanentlyDelete; diff --git a/src/main/java/com/leaper/pm2java/service/impl/Pm2JavaServiceImpl.java b/src/main/java/com/leaper/pm2java/service/impl/Pm2JavaServiceImpl.java index 7ed4570..14a432a 100644 --- a/src/main/java/com/leaper/pm2java/service/impl/Pm2JavaServiceImpl.java +++ b/src/main/java/com/leaper/pm2java/service/impl/Pm2JavaServiceImpl.java @@ -277,6 +277,7 @@ public class Pm2JavaServiceImpl implements Pm2JavaService { Process process = pb.start(); processBuilderMap.put(appConfigEntity.getName(), process); appServerInfoRecordMap.get(appConfigEntity.getName()).setOnOff(true); + appServerInfoRecordMap.get(appConfigEntity.getName()).setStartTime(LocalDateTime.now()); appServerInfoRecordMap.get(appConfigEntity.getName()).setSelectTime(LocalDateTime.now()); log.info("{}服务启动", appConfigEntity.getName()); processBuilderUtil.getProcessLogs(processBuilderMap.get(appConfigEntity.getName()),appConfigEntity.getName()); diff --git a/src/main/java/com/leaper/pm2java/service/task/CronTask.java b/src/main/java/com/leaper/pm2java/service/task/CronTask.java new file mode 100644 index 0000000..105f8ec --- /dev/null +++ b/src/main/java/com/leaper/pm2java/service/task/CronTask.java @@ -0,0 +1,27 @@ +package com.leaper.pm2java.service.task; + +import com.leaper.pm2java.entity.AppServerInfo; +import com.leaper.pm2java.service.Pm2JavaService; +import com.leaper.pm2java.service.impl.Pm2JavaServiceImpl; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +@Component +public class CronTask { + + @Resource + private Pm2JavaService pm2JavaService; + + @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)); + } + + } + } +} diff --git a/src/main/java/com/leaper/pm2java/util/MyService.java b/src/main/java/com/leaper/pm2java/util/MyService.java index 81d3bac..4ba4634 100644 --- a/src/main/java/com/leaper/pm2java/util/MyService.java +++ b/src/main/java/com/leaper/pm2java/util/MyService.java @@ -14,19 +14,6 @@ public class MyService { System.out.println("MyService stopped"); } - public static void main(String[] args) { - String command = args.length > 0 ? args[0] : ""; - String serviceName = "MyCustomService"; - - if (command.equals("install")) { - installService(serviceName); - } else if (command.equals("uninstall")) { - uninstallService(serviceName); - } else { - // 启动服务 - runService(); - } - } private static void installService(String serviceName) { Path currentPath = Paths.get("");