|
@@ -27,6 +27,10 @@ const RobotStatus = Object.freeze({
|
|
|
|
|
|
let appMap = new Map();
|
|
let appMap = new Map();
|
|
|
|
|
|
|
|
+function getAppMap() {
|
|
|
|
+ return appMap;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
|
|
function getApp(key) {
|
|
function getApp(key) {
|
|
let app = {
|
|
let app = {
|
|
@@ -430,6 +434,55 @@ async function restartApp(param) {
|
|
logger.info(`重启完成!!!!!`);
|
|
logger.info(`重启完成!!!!!`);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+async function closeAppAll() {
|
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
|
+
|
|
|
|
+ var appMap = getAppMap()
|
|
|
|
+ // console.log(appMap.size); // 输出Map的大小
|
|
|
|
+ appMap.forEach((value, key) => {
|
|
|
|
+ console.log(key, value); // 输出Map的键值对
|
|
|
|
+ // logger.info("???", key, value)
|
|
|
|
+ var app = value
|
|
|
|
+ logger.info(` 信号: `, app.threadStatus);
|
|
|
|
+ /*******新的删除方式*************/
|
|
|
|
+ //文件授权
|
|
|
|
+ if (app.childProcess !== undefined) {
|
|
|
|
+ var pid = app.childProcess.pid
|
|
|
|
+ exec(`sudo kill ${pid}`, (error, stdout, stderr) => {
|
|
|
|
+ if (error) {
|
|
|
|
+ logger.error(`进程${pid} 杀死失败: ${error}`);
|
|
|
|
+ }
|
|
|
|
+ logger.info(`进程${pid} 杀死成功`);
|
|
|
|
+ logger.info(`当前app:`, app);
|
|
|
|
+ app.threadStatus = RobotStatus.STOP_PENDING
|
|
|
|
+ robotStatus(app)
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ while (true) {
|
|
|
|
+ var z = 0;
|
|
|
|
+ await delay(1000)
|
|
|
|
+ var str = "";
|
|
|
|
+ appMap.forEach((value, key) => {
|
|
|
|
+ str += "机器人:"+key+",当前状态:"+value.threadStatus+"\t"
|
|
|
|
+ if(value.threadStatus !== RobotStatus.STOPPED){
|
|
|
|
+ z+=1
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ logger.info(str)
|
|
|
|
+ if(z===0){
|
|
|
|
+ logger.info(`策略全部关闭~~开始关闭node`);
|
|
|
|
+ break
|
|
|
|
+ }else{
|
|
|
|
+ logger.info(`等待关闭~~策略!`);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return resolve(true)
|
|
|
|
+ })
|
|
|
|
+ /*******新的删除方式*************/
|
|
|
|
+}
|
|
|
|
|
|
// 下载执行程序,使用的实行服务器指令的方式进行下载
|
|
// 下载执行程序,使用的实行服务器指令的方式进行下载
|
|
function downloadFileWithPowerShell(url, destination, headers, funBreak) {
|
|
function downloadFileWithPowerShell(url, destination, headers, funBreak) {
|
|
@@ -521,5 +574,5 @@ function delRobot(app) {
|
|
|
|
|
|
|
|
|
|
module.exports = {
|
|
module.exports = {
|
|
- run, closeApp, restartApp, delRobot, robotStatus, robotAmount, appMap, RobotStatus
|
|
|
|
|
|
+ run, closeApp, restartApp, delRobot, robotStatus, robotAmount, closeAppAll, appMap, getAppMap, RobotStatus
|
|
};
|
|
};
|