【问题标题】:PM2 restart job on sucessPM2 成功重启作业
【发布时间】:2021-09-08 16:32:22
【问题描述】:

我有一个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
        }
    ]
}

【问题讨论】:

    标签: node.js json puppeteer pm2


    【解决方案1】:

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

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

    【讨论】:

    • 是否可以获取当前的pm2进程名?因为我只想重新开始。
    • 是的,我正在这样做。感谢您的帮助。
    猜你喜欢
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    相关资源
    最近更新 更多