开发者社区 > 云效DevOps > 正文

假如云效这种有异常的,没直接中断,一直卡住了,怎么捕捉到这个异常呢让它中断呢?每次卡住很久。

ae29b2b91da551651a987f6d4673ee47.png
假如云效这种有异常的,没直接中断,一直卡住了,怎么捕捉到这个异常呢让它中断呢?每次卡住很久。
10b10ad81f61575998b5a82b18f4735c.png
73d4f5a747ad2b99107f9c4f107e2175.png
build 时候也要加这个参数吗?

展开
收起
嘟嘟嘟嘟嘟嘟 2023-12-31 22:57:23 50 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 package.json 的 "scripts" 部分,添加一个新脚本来处理异常情况。这个脚本可以定期检查进程是否处于活动状态,如果检测到异常,则触发中断。

    "scripts": {
      "dev": "node build/dev-server.js",
      "start": "node build/dev-server.js",
      "build": "set NODE_ENV=production && node build/build.js",
      "e2e": "node test/e2e/runner.js",
      "test": "npm run e2e",
      "monitor": "node monitor.js"
    },
    "monitor": {
      "script": "node monitor.js",
      "description": "定期检查进程活动状态,发现异常时中断"
    }
    

    ,创建一个名为 "monitor.js" 的文件,用于实现进程监控功能。在 monitor.js 中,你可以使用 "ps" 命令来检查进程是否处于活动状态。如果发现异常,你可以使用 "kill" 命令中断进程。

    
    const { spawn } = require('child_process');
    const ps = spawn('ps', ['ax']);
    ps.stdout.on('data', (data) => {
      const lines = data.toString().split('\n');
      for (const line of lines) {
        if (line.includes('your_process_name')) {
          console.log('进程活动正常');
        } else {
          console.log('发现异常进程,尝试中断');
          const killProcess = spawn('kill', ['-9', 'your_process_id']);
          killProcess.on('close', (code) => {
            console.log(`进程中断成功,退出代码 ${code}`);
          });
        }
      }
    });
    ps.stderr.on('data', (data) => {
      console.error(`ps 命令执行失败:${data}`);
    });
    ps.on('close', (code) => {
      console.log(`ps 命令执行结束,退出代码 ${code}`);
    });
    

    你需要将 "your_process_name" 和 "your_process_id" 替换为实际的进程名和 ID。在运行此脚本之前,请确保已经运行了 "start" 或 "build" 脚本。这样,monitor.js 才能正确检查进程活动状态。

    2024-01-02 11:49:16
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

热门讨论

热门文章

相关电子书

更多
云效助力企业软件供应链生产效能提升 立即下载
云效 DevOps 客户案例集(公共云) 立即下载
云效专有云服务手册下载(2019最新版) 立即下载