pm2 не применяет изменения к ecosystem.config. js при перезапуске или перезагрузке - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть следующий файл ecosystem.config. js для моего приложения:

module.exports = {
  apps: [
    {
      name: 'Worker A',
      script: 'scripts/workerA.js',
      instances: 4,
      autorestart: true,
      watch: false,
      instance_var: 'INSTANCE_ID',
      max_memory_restart: '1G'
    },
    {
      name: 'Worker B',
      script: 'scripts/workerB.js',
      instances: 4,
      autorestart: true,
      watch: false,
      instance_var: 'INSTANCE_ID',
      max_memory_restart: '1G'
    }
  ]
}

Когда процессы запускаются через pm2 start ecosystem.config.js, все работает нормально. Однако, если я теперь изменю экземпляры приложений на другое число (т. Е. 8) и попытаюсь перезапустить процессы с помощью pm2 restart ecosystem.config.js, будет запущено то же количество экземпляров, что и раньше. pm2 reload ecosystem.config.js и pm2 startOrReload ecosystem.config.js показывают одинаковое поведение.

Единственный способ решить проблему - полностью удалить все процессы с помощью pm2 delete ecosystem.config.js, а затем снова запустить их все. Хотя это работает, у меня отнимается возможность использовать перезапуск «0 секунд», который предлагает pm2 reload ....

Есть ли какое-либо решение для этого? Спасибо!

$ pm2 -v
4.2.3

1 Ответ

0 голосов
/ 19 февраля 2020

масштабирующие узлы работают только в режиме кластера в pm2 (https://pm2.keymetrics.io/docs/usage/cluster-mode/)

, поэтому добавьте exec_mode: "cluster" в вашу конфигурацию

module.exports = {
  apps: [
    {
      name: 'Worker A',
      script: 'scripts/workerA.js',
      instances: 4,
      autorestart: true,
      watch: false,
      instance_var: 'INSTANCE_ID',
      max_memory_restart: '1G',
    exec_mode : "cluster"
    },
    {
      name: 'Worker B',
      script: 'scripts/workerB.js',
      instances: 4,
      autorestart: true,
      watch: false,
      instance_var: 'INSTANCE_ID',
      max_memory_restart: '1G',
    exec_mode : "cluster"
    }
  ]
}
...