let pros = require('../processes.json');
const pkg = require("../package.json");
const { exec } = require('child_process');
export default function autoPausePlugin() {
let timer;
return {
name: 'auto-pause',
configureServer(server) {
timer = setTimeout(()=>{
console.log('-----48小时服务未使用,暂停服务-----')
exec(`pm2 stop ${pros.apps[0].name}`,(err, stdout) => {
if (err) {
console.error(`pm2 stop ${pros.apps[0].name}`, err);
return;
}
})
},pkg.preview.autoStopTime*1000) // 设置 两天没动 无请求时检查服务状态并暂停服务
server.middlewares.use((req, res, next) => {
// 每当有请求到达时,重置定时器,并设置服务为活跃状态
clearTimeout(timer);
timer = setTimeout(() => {
console.log('-----48小时服务未使用,暂停服务-----')
exec(`pm2 stop ${pros.apps[0].name}`,(err, stdout) => {
if (err) {
console.error(`pm2 stop ${pros.apps[0].name}`, err);
return;
}
})
}, pkg.preview.autoStopTime*1000); // 设置 两天没动 无请求时检查服务状态并暂停服务
next();
});
}
};
}