【问题标题】:pm2 does not apply changes to ecosystem.config.js on restart or reloadpm2 不会在重新启动或重新加载时将更改应用于生态系统.config.js
【发布时间】:2020-02-19 12:53:53
【问题描述】:

我的应用程序有以下生态系统.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.jspm2 startOrReload ecosystem.config.js 表现出相同的行为。

我解决问题的唯一方法是使用pm2 delete ecosystem.config.js 完全删除所有进程,然后重新启动它们。虽然这可行,但它剥夺了我使用pm2 reload ... 提供的“0 秒停机时间”重启的可能性。

有什么解决办法吗?谢谢!

$ pm2 -v
4.2.3

【问题讨论】:

    标签: node.js process pm2


    【解决方案1】:

    缩放节点仅在 pm2 (https://pm2.keymetrics.io/docs/usage/cluster-mode/) 中以集群模式工作

    所以添加 exec_mode : “集群”到您的配置

    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"
        }
      ]
    }
    

    【讨论】:

    • 进程已经在集群模式下运行,我猜一旦你将“instances”属性设置为大于1,它就会自动设置。不幸的是,添加exec_mode : 'cluster'并不能解决问题,如果我增加实例,重启生态系统文件后进程数仍然保持不变。
    猜你喜欢
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 2022-01-22
    • 1970-01-01
    • 2018-07-02
    相关资源
    最近更新 更多