Env .: Node.js в Ubuntu с программным использованием PM2.
Я запустил PM2 с 3 экземплярами через Node в моем основном коде. Предположим, я использую командную строку 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 запущенных экземпляра.
update не имеет значения, 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).