08335 / hivui-platform-template
hivui平台项目模板
Newer
Older
hivui-platform-template / vite-plugin / vite-plugin-auto-pause.js
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();
      });

    }
  };
}