|
@@ -1,10 +1,12 @@
|
|
|
package com.evps.comm.server;
|
|
package com.evps.comm.server;
|
|
|
|
|
|
|
|
|
|
+import com.evps.comm.server.config.ApplicationConfig;
|
|
|
import com.evps.comm.server.config.TraceConfig;
|
|
import com.evps.comm.server.config.TraceConfig;
|
|
|
import com.evps.comm.server.process.dbms.DbmsDataProcess;
|
|
import com.evps.comm.server.process.dbms.DbmsDataProcess;
|
|
|
import com.evps.comm.server.repository.ApplicationRepository;
|
|
import com.evps.comm.server.repository.ApplicationRepository;
|
|
|
import com.evps.comm.server.xnet.server.EvpsCommServerService;
|
|
import com.evps.comm.server.xnet.server.EvpsCommServerService;
|
|
|
import com.evps.comm.server.xnet.server.process.work.DataPacketProcess;
|
|
import com.evps.comm.server.xnet.server.process.work.DataPacketProcess;
|
|
|
|
|
+import com.evps.common.utils.ApplicationUtils;
|
|
|
import com.its.common.spring.SpringUtils;
|
|
import com.its.common.spring.SpringUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.DisposableBean;
|
|
import org.springframework.beans.factory.DisposableBean;
|
|
@@ -20,6 +22,9 @@ import org.springframework.context.annotation.ComponentScan;
|
|
|
import org.springframework.context.event.ContextClosedEvent;
|
|
import org.springframework.context.event.ContextClosedEvent;
|
|
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
|
|
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
|
+import java.nio.file.Files;
|
|
|
|
|
+import java.nio.file.Path;
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
|
|
|
@@ -32,6 +37,12 @@ public class EvpsCommServerApplication implements CommandLineRunner, Application
|
|
|
public static final String APPLICATION_NAME = "evps-comm-server";
|
|
public static final String APPLICATION_NAME = "evps-comm-server";
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
public static void main(String[] args) {
|
|
|
|
|
+ Path pidPath = ApplicationUtils.getApplicationPidPath(EvpsCommServerApplication.class, APPLICATION_NAME);
|
|
|
|
|
+ if (ApplicationUtils.isRunning(pidPath)) {
|
|
|
|
|
+ log.warn("EvpsCommServerApplication is already running. Check the PID file: {}", pidPath);
|
|
|
|
|
+ System.exit(1);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
SpringApplication application = new SpringApplicationBuilder()
|
|
SpringApplication application = new SpringApplicationBuilder()
|
|
|
.sources(EvpsCommServerApplication.class)
|
|
.sources(EvpsCommServerApplication.class)
|
|
|
.listeners(new ApplicationPidFileWriter("./conf/" + APPLICATION_NAME + ".pid"))
|
|
.listeners(new ApplicationPidFileWriter("./conf/" + APPLICATION_NAME + ".pid"))
|
|
@@ -54,6 +65,9 @@ public class EvpsCommServerApplication implements CommandLineRunner, Application
|
|
|
log.info("** startup: {}", sdfDate.format(new Date()));
|
|
log.info("** startup: {}", sdfDate.format(new Date()));
|
|
|
log.info("************************************************************************************");
|
|
log.info("************************************************************************************");
|
|
|
|
|
|
|
|
|
|
+ ApplicationConfig applicationConfig = SpringUtils.getBean(ApplicationConfig.class);
|
|
|
|
|
+ applicationConfig.setStartSchedule(false);
|
|
|
|
|
+
|
|
|
DbmsDataProcess dbmsDataProcess = SpringUtils.getBean(DbmsDataProcess.class);
|
|
DbmsDataProcess dbmsDataProcess = SpringUtils.getBean(DbmsDataProcess.class);
|
|
|
dbmsDataProcess.run();
|
|
dbmsDataProcess.run();
|
|
|
|
|
|
|
@@ -71,9 +85,17 @@ public class EvpsCommServerApplication implements CommandLineRunner, Application
|
|
|
EvpsCommServerService evpsCommServerService = SpringUtils.getBean(EvpsCommServerService.class);
|
|
EvpsCommServerService evpsCommServerService = SpringUtils.getBean(EvpsCommServerService.class);
|
|
|
evpsCommServerService.run();
|
|
evpsCommServerService.run();
|
|
|
|
|
|
|
|
|
|
+ applicationConfig.setStartSchedule(true);
|
|
|
|
|
+
|
|
|
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
|
|
Runtime.getRuntime().addShutdownHook(new Thread(() -> {
|
|
|
log.error("on shutdown hook.");
|
|
log.error("on shutdown hook.");
|
|
|
|
|
+ applicationConfig.setStartSchedule(false);
|
|
|
terminate();
|
|
terminate();
|
|
|
|
|
+ try {
|
|
|
|
|
+ Path pidPath = ApplicationUtils.getApplicationPidPath(EvpsCommServerApplication.class, APPLICATION_NAME);
|
|
|
|
|
+ Files.deleteIfExists(pidPath);
|
|
|
|
|
+ } catch (IOException ignored) {
|
|
|
|
|
+ }
|
|
|
}));
|
|
}));
|
|
|
}
|
|
}
|
|
|
|
|
|