成功时 PM2 重新启动作业

PM2 restart job on sucess

我有一个 puppeteer 脚本,我正在 运行 生产使用 PM2。当最后一项工作成功或失败时,我需要重新启动它。每个机器人实例都是 22 个以上机器人的集群。 我想在它完成后重新启动它。

机器人会做很多随机的事情,所以我无法设置 cron 作业来重新启动它们,因为机器人可能会在几秒或几分钟内完成。

我愿意接受任何其他帮助我完成此任务的图书馆。

{
    "apps": [
        {
            "name": "bot-1",
            "script": "Bot1.js",
            "instances": "2",
            "autorestart": true,
            "restart_delay": 1,
            "exec_mode" : "cluster"
        },
        {
            "name": "bot-2",
            "script": "Bot1.js",
            "instances": "2",
            "autorestart": true,
            "restart_delay": 1,
            "exec_mode" : "cluster"
        },
        {
            "name": "bot-3",
            "script": "Bot1.js",
            "instances": "2",
            "autorestart": true,
            "restart_delay": 1,
            "exec_mode" : "cluster"
        },
        {
            "name": "bot-4",
            "script": "Bot1.js",
            "instances": "2",
            "autorestart": true,
            "restart_delay": 1,
            "exec_mode" : "cluster"
        },
        {
            "name": "bot-5",
            "script": "Bot1.js",
            "instances": "2",
            "exec_mode" : "cluster",
            "autorestart": true,
            "restart_delay": 1,
        },{
            "name": "bot-6",
            "script": "Bot1.js",
            "instances": "2",
            "autorestart": true,
            "restart_delay": 1,
            "exec_mode" : "cluster"
        },
        {
            "name": "bot-7",
            "script": "Bot1.js",
            "instances": "2",
            "autorestart": true,
            "restart_delay": 1,
            "exec_mode" : "cluster"
        },
        {
            "name": "bot-8",
            "script": "Bot1.js",
            "instances": "2",
            "autorestart": true,
            "restart_delay": 1,
            "exec_mode" : "cluster"
        },
        {
            "name": "bot-9",
            "script": "Bot1.js",
            "instances": "2",
            "autorestart": true,
            "restart_delay": 1,
            "exec_mode" : "cluster"
        },
        {
            "name": "bot-10",
            "script": "Bot1.js",
            "instances": "2",
            "exec_mode" : "cluster",
            "autorestart": true,
            "restart_delay": 1
        }
    ]
}

您可以使用 pm2 api 来完成此操作 (pm2.restart(process, [options], fn))。在您的机器人代码中 - 您可以实现拆卸功能,重新启动 pm2 进程。

为了重新启动当前进程,机器人在 运行 中,您可以将名称作为 env variable 传递。