Код не выполняется на одном ядре, даже если он находится в сети - PullRequest
0 голосов
/ 17 апреля 2020

Сразу после запуска приложения все выглядит нормально, все четыре ядра онлайн работают в режиме кластера. Два ядра имеют одинаковые названия, остальные два отличаются. Вот файл экосистемы. json:

{ 'apps': [
    {
      'name': 'CHS',
      'script': './main.js',
      'out_file': '../logs/appname.log',
      'error_file': '../logs/appname.log',
      'log_date_format' : 'YYYY-MM-DD HH:mm:ss Z',
      'rotateModule': true,
      'compress': true,
      'dateFormat': 'YYYY-MM-DD',
      'max_size': '10M',
      'retain': 300,
      'log_date_format' : 'YYYY-MM-DD HH:mm:ss Z',
      'merge_logs': true,
      'env': {
        'NODE_ENV': 'production',
        'METEOR_SETTINGS': '{ ... }'
    },
      'env_production': {
        'NODE_ENV': 'production'
      },
      'instances': '1',
      'exec_mode': 'cluster'
    },
    {
      'name': 'ORC',
      'script': './main.js',
      'out_file': '../logs/appname.log',
      'error_file': '../logs/appname.log',
      'log_date_format' : 'YYYY-MM-DD HH:mm:ss Z',
      'rotateModule': true,
      'compress': true,
      'dateFormat': 'YYYY-MM-DD',
      'max_size': '10M',
      'retain': 300,
      'merge_logs': true,
      'env': {
        'NODE_ENV': 'production',
        'METEOR_SETTINGS': '{ ... }'
    },
      'env_production': {
        'NODE_ENV': 'production'
      },
      'instances': '1',
      'exec_mode': 'cluster'
    },
    {
      'name': 'WCR',
      'script': './main.js',
      'out_file': '../logs/appname.log',
      'error_file': '../logs/appname.log',
      'log_date_format' : 'YYYY-MM-DD HH:mm:ss Z',
      'rotateModule': true,
      'compress': true,
      'dateFormat': 'YYYY-MM-DD',
      'max_size': '10M',
      'retain': 300,
      'merge_logs': true,
      'env': {
        'NODE_ENV': 'production',
        'METEOR_SETTINGS': '{ ... }'
      },
      'instances': '2',
      'exec_mode': 'cluster'
    }
  ]
}

Через несколько секунд после запуска ядро ​​CHS по какой-то причине не выполняет какой-либо код (без каких-либо ошибок), а остальные три работают нормально. Я попытался переупорядочить ядра в экосистеме. json, добавить «pmx»: false (для некоторых онлайн-предложений, чтобы избежать некоторых частей в самом pm2), переименовать ядра и некоторые другие вещи, но проблема была та же. Я пытался убедиться, что в коде приложения нет ничего, что могло бы вызвать эту проблему, я искал ошибки в журналах, и это только у меня (в журналах pm2):

2020-04-17T14:16:49: PM2 error: (node:3720) [DEP0007] DeprecationWarning: worker.suicide is depricated. Please use worker.exitedAfterDisconnect.
2020-04-17T14:17:01: PM2 error: Error: write ENOTSUP
    at ChildProcess.target._send (internal/child_process.js:692:20)
    at ChildProcess.target.send (internal/child_process.js:576:19)
    at senderHelper (internal/cluster/utils.js:25:15)
    at send (internal/cluster/master.js:357:10)
    at handle.add (internal/cluster/master.js:329:5)
    at SharedHandle.add (internal/cluster/shared_handle.js:29:3)
    at queryServer (internal/cluster/master.js:318:10)
    at Worker.onmessage (internal/cluster/master.js:250:5)
    at ChildProcess.onInternalMessage (internal/cluster/utils.js:42:8)
    at emitTwo (events.js:131:20)
2020-04-17T14:17:01 PM2 log: App name:CHS id:0 disconnected

Кроме того, на В конце это происходит только на одном экземпляре windows VM (на втором нет проблем вообще). Эти экземпляры идентичны в зависимости от конфигурации. Версия PM2 была 4.2.3, но затем я попробовал с 3.5.1, и я получил ту же проблему. Кто-нибудь знает, как решить эту проблему?

В последнее время выяснилось, что проблема связана с UDP, и, вероятно, некоторые неподдерживаемые функции в узле для windows, например: https://nodejs.org/api/cluster.html#cluster_event_listening

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