成功时 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 传递。
我有一个 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 传递。