From dddc5e6586e91d81f6b51b1fcaf291a3471bd50a Mon Sep 17 00:00:00 2001 From: Administrator <ard@qq.com> Date: 星期四, 29 二月 2024 15:07:53 +0800 Subject: [PATCH] 优化ptz --- ard-work/src/main/java/com/ruoyi/cmd/startup.java | 315 ++++++++++++++++++++++++---------------------------- 1 files changed, 146 insertions(+), 169 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/cmd/startup.java b/ard-work/src/main/java/com/ruoyi/cmd/startup.java index 1f6c2c5..8e41c40 100644 --- a/ard-work/src/main/java/com/ruoyi/cmd/startup.java +++ b/ard-work/src/main/java/com/ruoyi/cmd/startup.java @@ -1,170 +1,147 @@ -package com.ruoyi.cmd; - -import com.ruoyi.utils.process.CmdUtils; -import com.sun.jna.Platform; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * @Description: 澶栭儴绋嬪簭鍚姩 - * @ClassName: startup - * @Author: 鍒樿嫃涔� - * @Date: 2023骞�09鏈�22鏃�9:56:57 - **/ -@Slf4j(topic = "cmd") -@Component -public class startup implements ApplicationContextInitializer { - - //minio - String minioName = "minio.exe"; - @Value("${minio.accessKey}") - String accessKey; - @Value("${minio.secretKey}") - String secretKey; - @Value("${minio.path}") - String path; - @Value("${minio.enabled}") - Boolean minioEnabled; - //mediamtx - String mediamtxName = "mediamtx.exe"; - @Value("${mediamtx.enabled}") - Boolean mediamtxEnabled; - //webrtc-streamer - String webrtcName = "webrtc-streamer.exe"; - @Value("${webrtc.host}") - String webrtcHost; - @Value("${webrtc.enabled}") - Boolean webrtcEnabled; - //redis - String redisName = "redis-server.exe"; - /** - * 绋嬪簭鍒濆鍖栧惎鍔╮edis - * 鍒樿嫃涔� - * 2023/9/22 10:38:41 - */ - @Override - public void initialize(ConfigurableApplicationContext applicationContext) { - if (Platform.isWindows()) { - String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "redis" + File.separator + redisName; - List<String> cmd = new ArrayList<>(); - cmd.add(exePath); - if (CmdUtils.isProcessRunning(redisName)) { - // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� - CmdUtils.stopProcess(redisName); - } - // 鍚姩鍚庡彴杩涚▼ - CmdUtils.commandStart(redisName, cmd, null); - // 鍚姩cmd绐楀彛 -// String[] command = {"cmd", "/c", "start", exePath, "-H127.0.0.1:8000", "-o"}; -// CmdUtils.commandStart(command); - } - } - - @PostConstruct - public void init() { - if (minioEnabled) { - log.debug("鍒濆鍖栧惎鍔╩inio"); - if (Platform.isWindows()) { - String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "minio" + File.separator + minioName; - Map<String, String> env = new HashMap<>(); - env.put("MINIO_ROOT_USER", accessKey); - env.put("MINIO_ROOT_PASSWORD", secretKey); - List<String> cmd = new ArrayList<>(); - cmd.add(exePath); - cmd.add("server"); - cmd.add(path); - cmd.add("--console-address=0.0.0.0:9000"); - cmd.add("--address=0.0.0.0:9001"); - if (CmdUtils.isProcessRunning(minioName)) { - // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� - CmdUtils.stopProcess(minioName); - } - // 鍚姩鍚庡彴杩涚▼ - CmdUtils.commandStart(minioName, cmd, env); - // 鍚姩cmd绐楀彛 - //String[] command = {"cmd", "/c", "start", exePath}; - //CmdUtils.commandStart(command); - } - } - if (mediamtxEnabled) { - log.debug("鍒濆鍖栧惎鍔╩ediaMTX"); - if (Platform.isWindows()) { - String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "mediamtx" + File.separator + mediamtxName; - String ymlPath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "mediamtx" + File.separator + "mediamtx.yml"; - - List<String> cmd = new ArrayList<>(); - cmd.add(exePath); - cmd.add(ymlPath); - if (CmdUtils.isProcessRunning(mediamtxName)) { - // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� - CmdUtils.stopProcess(mediamtxName); - } - // 鍚姩鍚庡彴杩涚▼ - CmdUtils.commandStart(mediamtxName, cmd, null); - // 鍚姩cmd绐楀彛 -// String[] command = {"cmd","/c","start",exePath,ymlPath}; -// CmdUtils.commandStart(command); - } - } - if (webrtcEnabled) { - if (Platform.isWindows()) { - String exePath = System.getProperty("user.dir") + File.separator + "lib" + File.separator + "webrtc" + File.separator + webrtcName; - List<String> cmd = new ArrayList<>(); - cmd.add(exePath); - cmd.add("-H" + webrtcHost); - cmd.add("-o"); - if (CmdUtils.isProcessRunning(webrtcName)) { - // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� - CmdUtils.stopProcess(webrtcName); - } - // 鍚姩鍚庡彴杩涚▼ - CmdUtils.commandStart(webrtcName, cmd, null); - // 鍚姩cmd绐楀彛 -// String[] command = {"cmd", "/c", "start", exePath, "-H127.0.0.1:8000", "-o"}; -// CmdUtils.commandStart(command); - } - } - } - - @PreDestroy - public void destroy() { - if (minioEnabled) { - log.info("閿�姣乵inio"); - if (CmdUtils.isProcessRunning(minioName)) { - // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� - CmdUtils.stopProcess(minioName); - } - } - if (mediamtxEnabled) { - log.info("閿�姣乵ediaMtx"); - if (CmdUtils.isProcessRunning(mediamtxName)) { - // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� - CmdUtils.stopProcess(mediamtxName); - } - } - if (webrtcEnabled) { - log.info("閿�姣亀ebrtc-streamer"); - if (CmdUtils.isProcessRunning(webrtcName)) { - // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� - CmdUtils.stopProcess(webrtcName); - } - } - if (true) { - log.info("閿�姣乺edis"); - if (CmdUtils.isProcessRunning(redisName)) { - // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� - CmdUtils.stopProcess(redisName); - } - } - } +package com.ruoyi.cmd; + +import com.ruoyi.utils.process.CmdUtils; +import com.sun.jna.Platform; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.annotation.Order; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; +import org.springframework.core.io.ResourceLoader; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description: 澶栭儴绋嬪簭鍚姩 + * @ClassName: startup + * @Author: 鍒樿嫃涔� + * @Date: 2023骞�09鏈�22鏃�9:56:57 + **/ +@Slf4j(topic = "cmd") +@Component +public class startup implements ApplicationContextInitializer { + + //minio + String minioName = "minio.exe"; + @Value("${minio.accessKey}") + String accessKey; + @Value("${minio.secretKey}") + String secretKey; + @Value("${minio.path}") + String path; + @Value("${minio.enabled}") + Boolean minioEnabled; + //mediamtx + String mediamtxName = "mediamtx.exe"; + @Value("${mediamtx.enabled}") + Boolean mediamtxEnabled; + //redis + String redisName = "redis-server.exe"; + + /** + * 绋嬪簭鍒濆鍖栧惎鍔╮edis + * 鍒樿嫃涔� + * 2023/9/22 10:38:41 + */ + @Override + public void initialize(ConfigurableApplicationContext applicationContext) { + if (Platform.isWindows()) { + String exePath = System.getProperty("user.dir") + File.separator + "server" + File.separator + "redis" + File.separator + redisName; + List<String> cmd = new ArrayList<>(); + cmd.add(exePath); + if (CmdUtils.isProcessRunning(redisName)) { + // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� + CmdUtils.stopProcess(redisName); + } + // 鍚姩鍚庡彴杩涚▼ + CmdUtils.commandStart(redisName, cmd, null); + // 鍚姩cmd绐楀彛 + //String[] command = {"cmd", "/c", "start", exePath, "-H127.0.0.1:8000", "-o"}; + //CmdUtils.commandStart(command); + } + } + + @PostConstruct + @Order(1) + public void init() { + if (minioEnabled) { + log.info("鍒濆鍖栧惎鍔╩inio"); + if (Platform.isWindows()) { + String exePath = System.getProperty("user.dir") + File.separator + "server" + File.separator + "minio" + File.separator + minioName; + Map<String, String> env = new HashMap<>(); + env.put("MINIO_ROOT_USER", accessKey); + env.put("MINIO_ROOT_PASSWORD", secretKey); + List<String> cmd = new ArrayList<>(); + cmd.add(exePath); + cmd.add("server"); + cmd.add(path); + cmd.add("--console-address=0.0.0.0:9000"); + cmd.add("--address=0.0.0.0:9001"); + if (CmdUtils.isProcessRunning(minioName)) { + // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� + CmdUtils.stopProcess(minioName); + } + // 鍚姩鍚庡彴杩涚▼ + CmdUtils.commandStart(minioName, cmd, env); + // 鍚姩cmd绐楀彛 + //String[] command = {"cmd", "/c", "start", exePath}; + //CmdUtils.commandStart(command); + } + } + if (mediamtxEnabled) { + log.info("鍒濆鍖栧惎鍔╩ediaMTX"); + if (Platform.isWindows()) { + String exePath = System.getProperty("user.dir") + File.separator + "server" + File.separator + "mediamtx" + File.separator + mediamtxName; + String ymlPath = System.getProperty("user.dir") + File.separator + "server" + File.separator + "mediamtx" + File.separator + "mediamtx.yml"; + + List<String> cmd = new ArrayList<>(); + cmd.add(exePath); + cmd.add(ymlPath); + if (CmdUtils.isProcessRunning(mediamtxName)) { + // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� + CmdUtils.stopProcess(mediamtxName); + } + // 鍚姩鍚庡彴杩涚▼ + CmdUtils.commandStart(mediamtxName, cmd, null); + // 鍚姩cmd绐楀彛 +// String[] command = {"cmd","/c","start",exePath,ymlPath}; +// CmdUtils.commandStart(command); + } + } + } + + @PreDestroy + public void destroy() { + if (minioEnabled) { + log.info("閿�姣乵inio"); + if (CmdUtils.isProcessRunning(minioName)) { + // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� + CmdUtils.stopProcess(minioName); + } + } + if (mediamtxEnabled) { + log.info("閿�姣乵ediaMtx"); + if (CmdUtils.isProcessRunning(mediamtxName)) { + // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� + CmdUtils.stopProcess(mediamtxName); + } + } + if (true) { + log.info("閿�姣乺edis"); + if (CmdUtils.isProcessRunning(redisName)) { + // 杩涚▼宸茬粡鍦ㄨ繍琛岋紝缁撴潫璇ヨ繘绋� + CmdUtils.stopProcess(redisName); + } + } + } } \ No newline at end of file -- Gitblit v1.9.3