pm2 не видит изменения в файле - PullRequest
0 голосов
/ 13 июня 2018

Я создал приложение nodejs с микросервисной архитектурой.Ниже приводится архитектура.

  • корневая папка
    • demo-ms-bootstrap
    • demo-ms-gateway
    • demo-ms-аутентификация
    • демо-ms-пользователь
    • демо-ms-product-management
    • демо-ms-product-feed
    • демо-ms-утилита

Существует корневая папка с несколькими папками микро-сервисов.У demo-ms-bootstrap есть файл экосистемы pm2.

Моя проблема в том, что в коде микросервисов что-то изменится, он не будет следить за изменениями и перезапускает сервер.Если я установлю процесс pm2 индивидуально для каждой папки микросервиса, то он будет работать должным образом.

Вместо того, чтобы помещать отдельные службы pm2 в каждую папку микросервиса, я создал один файл ecosystem.config.js, в котором вся конфигурация pm2 связана с микросервисом.в папке demo-ms-bootstrap.

Я знаю, что если я положу свой код demo-ms-bootstrap ecosystem.config.js в корневую папку, то, вероятно, он будет работать.Но я не хочу делать это так, потому что мне нужно было сделать много доработок, кроме pm2 ecosytem.config.js.

В папке demo-ms-bootstrap есть и другие конфигурации.

ecosystem.config.js

module.exports = {
  "apps": [    
    {
      name: 'demo-ms-gateway',
      script: '../demo-ms-gateway/bin/exec',
      env: {
        NODE_ENV: 'development',
        APP_PROTOCOL: 'http',
        APP_NAME: 'demo',
        APP_HOST: '0.0.0.0',
        APP_PORT: 3001,
        DB_HOST: 'localhost',
        DB_USER: 'dbuser',
        DB_PASSWORD: 'dbuser123',
        DB_NAME: 'demo',
        DB_DIALECT: 'postgres',
        SERVICE_NAME: 'demo-gateway'
      },
      log_file: "../demo-ms-gateway/logs/demo-ms-gateway.log",
      error_file: "../demo-ms-gateway/logs/demo-ms-gateway.error.log",
      out_file: "../demo-ms-gateway/logs/demo-ms-gateway.out.log",
      pid_file: "../demo-ms-gateway/logs/demo-ms-gateway.pid",
      merge_logs: true,
      log_date_format: "YYYY-MM-DD HH:mm Z",
      next_gen_js: true,
      autorestart: true,
      exec_mode: "cluster",
      instances: 1,
      watch: true,
      watch_options: {
        followSymlinks: true,
        usePolling: true,
        interval: 5
      },
      ignore_watch: [
        '../demo-ms-gateway/logs',
        '../demo-ms-gateway/node_modules',
        '../demo-ms-gateway/.gitignore',
        '../demo-ms-gateway/.sequelizerc',
        '../demo-ms-gateway/package-lock.json',
        '../demo-ms-gateway/package.json',
        '../demo-ms-gateway/README.md'
      ],
      node_args: ["--harmony", "--inspect"]
    },
    {
      name: 'demo-ms-authentication',
      script: '../demo-ms-authentication/bin/exec',
      env: {
        NODE_ENV: 'development',
        APP_PROTOCOL: 'http',
        APP_NAME: 'demo',
        APP_HOST: '0.0.0.0',
        APP_PORT: 3002,
        DB_HOST: 'localhost',
        DB_USER: 'dbuser',
        DB_PASSWORD: 'dbuser123',
        DB_NAME: 'demo',
        DB_DIALECT: 'postgres',
        JWT_SECRET_KEY: '.auth/.demo_id_ecdsa',
        SERVICE_NAME: 'demo-authentication'
      },
      log_file: "../demo-ms-authentication/logs/demo-ms-authentication.log",
      error_file: "../demo-ms-authentication/logs/demo-ms-authentication.error.log",
      out_file: "../demo-ms-authentication/logs/demo-ms-authentication.out.log",
      pid_file: "../demo-ms-authentication/logs/demo-ms-authentication.pid",
      merge_logs: true,
      log_date_format: "YYYY-MM-DD HH:mm Z",
      next_gen_js: true,
      autorestart: true,
      exec_mode: "cluster",
      instances: 1,
      watch: true,
      watch_options: {
        followSymlinks: true,
        usePolling: true,
        interval: 5
      },
      ignore_watch: [
        '../demo-ms-authentication/logs',
        '../demo-ms-authentication/node_modules',
        '../demo-ms-authentication/.gitignore',
        '../demo-ms-authentication/.sequelizerc',
        '../demo-ms-authentication/package-lock.json',
        '../demo-ms-authentication/package.json',
        '../demo-ms-authentication/README.md'
      ],
      node_args: ["--harmony", "--inspect"]
    },
    {
      name: 'demo-ms-user',
      script: '../demo-ms-user/bin/exec',
      env: {
        NODE_ENV: 'development',
        APP_PROTOCOL: 'http',
        APP_NAME: 'demo',
        APP_HOST: '0.0.0.0',
        APP_PORT: 3003,
        DB_HOST: 'localhost',
        DB_USER: 'dbuser',
        DB_PASSWORD: 'dbuser123',
        DB_NAME: 'demo',
        DB_DIALECT: 'postgres',
        SERVICE_NAME: 'demo-user'
      },
      log_file: "../demo-ms-user/logs/demo-ms-user.log",
      error_file: "../demo-ms-user/logs/demo-ms-user.error.log",
      out_file: "../demo-ms-user/logs/demo-ms-user.out.log",
      pid_file: "../demo-ms-user/logs/demo-ms-user.pid",
      merge_logs: true,
      log_date_format: "YYYY-MM-DD HH:mm Z",
      next_gen_js: true,
      autorestart: true,
      exec_mode: "cluster",
      instances: 1,
      watch: true,
      watch_options: {
        followSymlinks: true,
        usePolling: true,
        interval: 5
      },
      ignore_watch: [
        '../demo-ms-user/logs',
        '../demo-ms-user/node_modules',
        '../demo-ms-user/.gitignore',
        '../demo-ms-user/.sequelizerc',
        '../demo-ms-user/package-lock.json',
        '../demo-ms-user/package.json',
        '../demo-ms-user/README.md'
      ],
      node_args: ["--harmony", "--inspect"]
    },
    {
      name: 'demo-ms-product-manage',
      script: '../demo-ms-product-manage/bin/exec',
      env: {
        NODE_ENV: 'development',
        APP_PROTOCOL: 'http',
        APP_NAME: 'demo',
        APP_HOST: '0.0.0.0',
        APP_PORT: 3004,
        DB_HOST: 'localhost',
        DB_USER: 'dbuser',
        DB_PASSWORD: 'dbuser123',
        DB_NAME: 'demo',
        DB_DIALECT: 'postgres',
        AWS_ACCESS_KEY_ID: '',
        AWS_SECRET_ACCESS_KEY: '',
        AWS_BUCKET_NAME: 'demo-assets',
        AWS_ACL: 'public-read-write',
        AWS_API_VERSION: '2010-12-01',
        AWS_REGION: 'us-east-1',
        SERVICE_NAME: 'demo-product-manage'
      },
      log_file: "../demo-ms-product-manage/logs/demo-ms-product-manage.log",
      error_file: "../demo-ms-product-manage/logs/demo-ms-product-manage.error.log",
      out_file: "../demo-ms-product-manage/logs/demo-ms-product-manage.out.log",
      pid_file: "../demo-ms-product-manage/logs/demo-ms-product-manage.pid",
      merge_logs: true,
      log_date_format: "YYYY-MM-DD HH:mm Z",
      next_gen_js: true,
      autorestart: true,
      exec_mode: "cluster",
      instances: 1,
      watch: true,
      watch_options: {
        followSymlinks: true,
        usePolling: true,
        interval: 5
      },
      ignore_watch: [
        '../demo-ms-product-manage/logs',
        '../demo-ms-product-manage/node_modules',
        '../demo-ms-product-manage/.gitignore',
        '../demo-ms-product-manage/.sequelizerc',
        '../demo-ms-product-manage/package-lock.json',
        '../demo-ms-product-manage/package.json',
        '../demo-ms-product-manage/README.md'
      ],
      node_args: ["--harmony", "--inspect"]
    },
    {
      name: 'demo-ms-product-feed',
      script: '../demo-ms-product-feed/bin/exec',
      env: {
        NODE_ENV: 'development',
        APP_NAME: 'demo',
        APP_HOST: '0.0.0.0',
        APP_PORT: 3005,
        DB_HOST: 'localhost',
        DB_USER: 'dbuser',
        DB_PASSWORD: 'dbuser123',
        DB_NAME: 'demo',
        DB_DIALECT: 'postgres',
        SERVICE_NAME: 'demo-product-feed'
      },
      log_file: "../demo-ms-product-feed/logs/demo-ms-product-feed.log",
      error_file: "../demo-ms-product-feed/logs/demo-ms-product-feed.error.log",
      out_file: "../demo-ms-product-feed/logs/demo-ms-product-feed.out.log",
      pid_file: "../demo-ms-product-feed/logs/demo-ms-product-feed.pid",
      merge_logs: true,
      log_date_format: "YYYY-MM-DD HH:mm Z",
      next_gen_js: true,
      autorestart: true,
      exec_mode: "cluster",
      instances: 1,
      watch: true,
      watch_options: {
        followSymlinks: true,
        usePolling: true,
        interval: 5
      },
      ignore_watch: [
        '../demo-ms-product-feed/logs',
        '../demo-ms-product-feed/node_modules',
        '../demo-ms-product-feed/.gitignore',
        '../demo-ms-product-feed/.sequelizerc',
        '../demo-ms-product-feed/package-lock.json',
        '../demo-ms-product-feed/package.json',
        '../demo-ms-product-feed/README.md'
      ],
      node_args: ["--harmony", "--inspect"]
    },
    {
      name: 'demo-ms-utility',
      script: '../demo-ms-utility/bin/exec',
      env: {
        NODE_ENV: 'development',
        APP_PROTOCOL: 'http',
        APP_NAME: 'demo',
        APP_HOST: '0.0.0.0',
        APP_PORT: 3006,
        DB_HOST: 'localhost',
        DB_USER: 'dbuser',
        DB_PASSWORD: 'dbuser123',
        DB_NAME: 'demo',
        DB_DIALECT: 'postgres',
        SERVICE_NAME: 'demo-utility'
      },
      log_file: "../demo-ms-utility/logs/demo-ms-utility.log",
      error_file: "../demo-ms-utility/logs/demo-ms-utility.error.log",
      out_file: "../demo-ms-utility/logs/demo-ms-utility.out.log",
      pid_file: "../demo-ms-utility/logs/demo-ms-utility.pid",
      merge_logs: true,
      log_date_format: "YYYY-MM-DD HH:mm Z",
      next_gen_js: true,
      autorestart: true,
      exec_mode: "cluster",
      instances: 1,
      watch: true,
      watch_options: {
        followSymlinks: true,
        usePolling: true,
        interval: 5
      },
      ignore_watch: [
        '../demo-ms-utility/logs',
        '../demo-ms-utility/node_modules',
        '../demo-ms-utility/.gitignore',
        '../demo-ms-utility/.sequelizerc',
        '../demo-ms-utility/package-lock.json',
        '../demo-ms-utility/package.json',
        '../demo-ms-utility/README.md'
      ],
      node_args: ["--harmony", "--inspect"]
    }]
};

Может у кого-нибудь есть альтернативное решение этого вопроса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...