pm2 restart l oop in AWS Elasti c Beansalk (среда узла) - PullRequest
3 голосов
/ 09 июля 2020

У меня есть среда NodeJs, встроенная в AWS Elasti c Beanstalk. Я использую pm2 для мониторинга двух разных приложений NodeJS, загруженных в среду. Кикер в том, что мне нужно убедиться, что приложение local запущено до запуска приложения gateway. Я использую npm-run-all синхронно, чтобы запускать приложения в определенном c порядке.

Вот мой пакет. json:

"start": "npm-run-all -s start:local start:gateway",
"start:local": "pm2 start ./ecosystem.config.js --only local-service --env production",
"start:gateway": "pm2 start ./ecosystem.config.js --only gateway-service --env production",

Вот мой файл extract.config:

module.exports =
{
  apps:
    [
      {
        name: 'local-service',
        script: './dist/services/local.js',
        watch: false,
        interpreter: 'node',
        interpreter_args: '--require ts-node/register --require tsconfig-paths/register',
        autorestart: false
      },
      {
        name: 'gateway-service',
        script: './dist/server.js',
        watch: false,
        interpreter: 'node',
        interpreter_args: '--require ts-node/register --require tsconfig-paths/register',
        wait_ready: true,
        listen_timeout: 5000,
        autorestart: false
      }
    ]
};

В журнале beanstalk elasti c указано start в пакете. json вызывается постоянно. Я настроил каждое приложение так, чтобы он не перезапускался, но, похоже, что-то еще вызывает непрерывный перезапуск. Я получаю сообщение об ошибке 502 Bad Gateway при попытке доступа к самому шлюзу.

1 Ответ

2 голосов
/ 20 июля 2020

Пожалуйста, попробуйте использовать только экосистему pm2 без npm-run-all, т.е. только pm2 start ecosystem.config.js и разрешите любые (повторные) последовательности запуска, потому что в реальной жизни ваши gateway и local приложения могут перезапускаться в разных порядках. c

Если вы все еще хотите использовать лог c для планирования запуска, просмотрите действия процесса pm2 и добавьте в gateway код приложения, чтобы запустить приложение local.

...