NODE Является ли плохой практикой создание нового дочернего Process.fork из события close дочернего процесса? - PullRequest
0 голосов
/ 24 марта 2020

У меня есть длительный процесс Node, который полностью использует один поток, поэтому я перенес некоторые задачи setInterval в дочерний процесс узла.

Мой дочерний процесс также выполняется долго и обрабатывает такие вещи, как обновления базы данных. и проверка данных.

Я все еще нахожусь в процессе реализации надлежащей обработки ошибок в дочернем процессе, и поэтому я закрываю процесс на ошибках NetworkErrors или в базе данных и ошибках журналирования при сборке.

Это плохая практика - рекурсивно воссоздавать дочерний процесс из обработчика событий close?

const cp = require('child_process');

const setupErrorProcess = () => {
    let errorCheck = cp.fork('./childProcess/errorCheck.js', { stdio: 'pipe' });

    errorCheck.on('close', (data) => {
        setTimeout(() => {setupErrorProcess()}, 1000) //close event is emitted once
    });

    errorCheck.on('message', (msg) => {
      console.log('Message from errorCheck', msg);
      //handle message here
    });
}

setupErrorProcess();
...