You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PM2部署的puppeteer脚本任务完成后自动重启方案咨询

实现方案

方案一:脚本内主动退出 + PM2自动重启(最易实现,无需额外工具)

你当前的PM2配置已经开启了autorestart: true,只要在任务结束后主动退出进程,PM2就会自动触发重启,完美适配任务时长不固定的场景。
你只需要修改Bot1.js的逻辑,在任务执行完成(无论成功/失败)后调用process.exit()即可,示例代码如下:

const puppeteer = require('puppeteer');

async function runRandomTask() {
  let browser;
  try {
    browser = await puppeteer.launch(/* 你的puppeteer配置 */);
    // 你的随机任务执行逻辑
    console.log('任务执行成功');
  } catch (err) {
    console.error('任务执行出错', err);
  } finally {
    // 先关闭浏览器释放资源
    if (browser) await browser.close();
    // 主动退出进程,触发PM2自动重启
    process.exit();
  }
}

runRandomTask();

该方案完全不需要修改现有PM2配置,也无需引入第三方工具,就能实现每次任务结束后立即重启对应进程的需求。

方案二:PM2配置优化(可选)

你当前的配置写了10段重复的app配置,可通过批量生成简化,同时调整实例数达到你要求的22个节点:

{
    "apps": Array.from({length: 11}, (_, index) => ({
        "name": `bot-${index+1}`,
        "script": "Bot1.js",
        "instances": "2",
        "autorestart": true,
        "restart_delay": 1,
        "exec_mode" : "cluster",
        "min_uptime": 1000
    }))
}

新增的min_uptime参数会告知PM2,运行超过1秒的进程退出属于正常行为,不会被判定为异常重启计入错误统计。

内容的提问来源于stack exchange,提问作者Khalil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:48:02