添加多开检测

This commit is contained in:
fofolee
2022-05-02 19:03:26 +08:00
parent a53c1a16e0
commit 59d2906c74
2 changed files with 27 additions and 2 deletions

View File

@@ -23,6 +23,25 @@ window.yuQueClient = axios.create({
}
});
// 检测进程是否存在
let isProcessExits = pid => {
try {
return process.kill(pid, 0)
} catch (e) {
return false
}
}
// 多开检测
window.multiProcessDetection = () => {
let pids = JSON.parse(localStorage.getItem('processes')) || [];
if (pids.length) pids = pids.filter(x => isProcessExits(x));
pids.push(process.pid)
localStorage.setItem('processes', JSON.stringify(pids))
if (pids.length > 1) return true;
return false;
}
// axios.defaults.adapter = require('axios/lib/adapters/http')
if (!utools.isWindows()) process.env.PATH += ':/usr/local/bin:/usr/local/sbin'

View File

@@ -68,6 +68,14 @@ export default defineComponent({
_.cloneDeep(defaultProfile),
_.cloneDeep(userProfile)
);
// 默认主题色
this.setCssVar("primary", this.profile.primaryColor);
this.startUpOnce();
},
// 插件全生命周期只运行一次,主要针对多开的情况
startUpOnce() {
if (window.multiProcessDetection())
return console.log("multiProcess Detected");
// 计划任务
_.forIn(this.profile.crontabs, (cronExp, featureCode) => {
this.runCronTask(featureCode, cronExp);
@@ -82,8 +90,6 @@ export default defineComponent({
);
console.log("Server Start...");
}
// 默认主题色
this.setCssVar("primary", this.profile.primaryColor);
},
enterPlugin(enter) {
// 使用情况统计