generated from root/miduo_server
清库脚本优化2.0
parent
bc87a6ac99
commit
450cb96701
|
|
@ -129,8 +129,10 @@ public class ServerInfoController {
|
||||||
String register_state = request.getParameter("register_state");
|
String register_state = request.getParameter("register_state");
|
||||||
|
|
||||||
ServerInfo info = serverInfoDao.getServerinfo(server_id);
|
ServerInfo info = serverInfoDao.getServerinfo(server_id);
|
||||||
|
|
||||||
|
// 未运营状态的服务器需要进行清库处理
|
||||||
if (info != null && "-2".equals(info.getStatus())){
|
if (info != null && "-2".equals(info.getStatus())){
|
||||||
delUser(info);
|
ThreadPoolManager.getInstance().execute(() -> delUser(info));
|
||||||
}
|
}
|
||||||
|
|
||||||
serverInfoDao.updateServerInfo(server_id, status, 0, isnew, name,register_state);
|
serverInfoDao.updateServerInfo(server_id, status, 0, isnew, name,register_state);
|
||||||
|
|
@ -250,27 +252,35 @@ public class ServerInfoController {
|
||||||
* @param serverInfo
|
* @param serverInfo
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private int delUser(ServerInfo serverInfo){
|
private void delUser(ServerInfo serverInfo){
|
||||||
int wait = -1;
|
|
||||||
String path = "/data/jieling/deluser.sh";
|
String path = "/data/jieling/deluser.sh";
|
||||||
|
|
||||||
if (serverInfo.getIP() == null || "".equals(serverInfo.getIP())
|
if (serverInfo.getIP() == null || "".equals(serverInfo.getIP())
|
||||||
|| serverInfo.getServer_id() == null || "".equals(serverInfo.getServer_id())
|
|| serverInfo.getServer_id() == null || "".equals(serverInfo.getServer_id())
|
||||||
|| serverInfo.getCoreName() == null || "".equals(serverInfo.getCoreName())){
|
|| serverInfo.getCoreName() == null || "".equals(serverInfo.getCoreName())){
|
||||||
LOGGER.error("删除操作参数不全,执行失败:参数:{}",serverInfo.toString());
|
LOGGER.error("删除操作参数不全,执行失败:参数:{}",serverInfo.toString());
|
||||||
return wait;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String command = "sh " + path + " 500 " + serverInfo.getIP() + " " + serverInfo.getServer_id() + " " + serverInfo.getCoreName();
|
String command = "sh " + path + " 500 " + serverInfo.getIP() + " " + serverInfo.getServer_id() + " " + serverInfo.getCoreName();
|
||||||
|
LOGGER.info("=================清库命令:{}",command);
|
||||||
|
|
||||||
|
Process exec = null;
|
||||||
try {
|
try {
|
||||||
Process exec = Runtime.getRuntime().exec(command);
|
exec = Runtime.getRuntime().exec(command);
|
||||||
|
|
||||||
LOGGER.info("========================== 停服脚本执行结果开始 ===========================");
|
LOGGER.info("========================== 停服脚本执行结果开始 ===========================");
|
||||||
// new DealProcessSream(exec.getInputStream()).start();
|
new DealProcessSream(exec.getInputStream(),true).start();
|
||||||
|
new DealProcessSream(exec.getErrorStream(),false).start();
|
||||||
LOGGER.info("=========================== 停服脚本执行结果结束 ==========================");
|
LOGGER.info("=========================== 停服脚本执行结果结束 ==========================");
|
||||||
// exec.waitFor();
|
|
||||||
wait = 0;
|
exec.waitFor();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if (exec != null) {
|
||||||
|
exec.destroy();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
LOGGER.info("删除操作完成:命令:{}",command);
|
|
||||||
return wait;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,11 @@ import java.io.InputStreamReader;
|
||||||
public class DealProcessSream extends Thread {
|
public class DealProcessSream extends Thread {
|
||||||
private InputStream inputStream;
|
private InputStream inputStream;
|
||||||
|
|
||||||
public DealProcessSream(InputStream inputStream) {
|
private boolean judge;
|
||||||
|
|
||||||
|
public DealProcessSream(InputStream inputStream, boolean judge) {
|
||||||
this.inputStream = inputStream;
|
this.inputStream = inputStream;
|
||||||
|
this.judge = judge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -28,8 +31,13 @@ public class DealProcessSream extends Thread {
|
||||||
br = new BufferedReader(inputStreamReader);
|
br = new BufferedReader(inputStreamReader);
|
||||||
// 打印信息
|
// 打印信息
|
||||||
String line = null;
|
String line = null;
|
||||||
while ((line = br.readLine()) != null) {
|
if (judge){
|
||||||
System.out.println(line);
|
while ((line = br.readLine()) != null) {
|
||||||
|
System.out.println(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
while (br.readLine() != null);
|
||||||
}
|
}
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
ioe.printStackTrace();
|
ioe.printStackTrace();
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
package com.jmfy.utils;
|
||||||
|
|
||||||
|
import java.util.concurrent.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author hj
|
||||||
|
* @Date 2021/6/24 14:23
|
||||||
|
* @Description:
|
||||||
|
* @Version 1.0
|
||||||
|
*/
|
||||||
|
public class ThreadPoolManager {
|
||||||
|
|
||||||
|
private static ThreadPoolExecutor executor;
|
||||||
|
|
||||||
|
public static ThreadPoolExecutor getInstance() {
|
||||||
|
if (executor == null) {
|
||||||
|
synchronized (ThreadPoolManager.class) {
|
||||||
|
if (executor == null) {
|
||||||
|
executor = executorService();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return executor;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ThreadPoolExecutor executorService(){
|
||||||
|
return new ThreadPoolExecutor(1,//池中保持线程数
|
||||||
|
5,//最大线程数
|
||||||
|
10,//当线程数大于核心时,终止前多余空闲线程等待时间
|
||||||
|
TimeUnit.SECONDS,//时间单位为秒
|
||||||
|
new LinkedBlockingDeque<>(10),//池内队列最高10个线程
|
||||||
|
Executors.defaultThreadFactory(),//执行程序创建新线程使用默认工厂
|
||||||
|
new ThreadPoolExecutor.DiscardPolicy());//出现阻塞时使用处理程序
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue