Env .: Ubuntu上的Node.js,以編程方式使用PM2。將工作人員添加到PM2池。不要重新加載/重新啓動現有工作人員
我已經在我的主代碼中通過節點啓動了帶有3個實例的PM2。假設我使用PM2命令行來刪除其中一個實例。我可以將另一名工人添加到池中嗎?這可以在不影響其他工作人員的操作的情況下完成嗎?
我想我應該用start
方法:
pm2.start({
name : 'worker',
script : 'api/workers/worker.js', // Script to be run
exec_mode : 'cluster', // OR FORK
instances : 1, // Optional: Scale your app by 4
max_memory_restart : '100M', // Optional: Restart your app if it reaches 100Mo
autorestart : true
}, function(err, apps) {
pm2.disconnect();
});
但是,如果你使用pm2 monit
,你會看到2種現有的情況下重新啓動,並沒有其他的創建。結果仍然是2個運行實例。行爲是相同的 -
更新 如果cluster
或fork
不要緊。
更新2的命令行的scale
選項(https://keymetrics.io/2015/03/26/pm2-clustering-made-easy/),但我不明白的編程API文檔(https://github.com/Unitech/PM2/blob/master/ADVANCED_README.md#programmatic-api)這一方法。
是的。如果你想擁有一個彈性的工作者池,擴展應該是你頭腦中的第一件事,並且應該以編程方式完成,所以你可以編寫代碼來根據服務器負載做出決定。我會保持這個問題的公開...希望這將很快發佈... – noderman