NodeJS прослушивание нескольких дочерних вилок - PullRequest
0 голосов
/ 08 апреля 2020

Я создаю 10 дочерних вилок в 6-базовой системе.

var child = fork("onOf10scripts.js", [], {
    stdio: ['pipe', 'pipe', 'pipe', 'ipc']
});

child.on('message', (msg) => { ... });

child.stdout.on('data', (data) => { ... });

child.stderr.on('data', (data) => { ... });

onOf10scripts. js => один из 10 различных долгосрочных сценариев, которые периодически отправляют данные в родительский процесс.

Таким образом, происходит странное поведение, когда данные из 10 сценариев зависают, если только предыдущие 9 сценариев не отправляют данные. Я вижу, что родитель получает данные в какой-то очереди. Где каждый скрипт работает / собирает данные за несколько секунд. Я думаю, что это из-за родительского события l oop и childs работают на процессоре. Но мне нужно, чтобы все мои 10 скриптов запускались как форки для параллельной отправки данных родителю. Я пытался отсоединить ребенка, но это не помогло.

Когда я использую 10 скриптов в качестве асинхронных c функций в одном файле, все работает как положено. Итак, как я могу добиться этого с помощью детских вилок? Или, может быть, есть какая-то альтернатива модулю fork, так что я смогу «убить» функцию в середине выполнения. Потому что это одна из важных вещей для меня в модуле fork.

...