Узел Дочерний процесс работает непрерывно, не закрываясь после получения данных - PullRequest
0 голосов
/ 14 мая 2019

Я работаю над петлевым проектом, где мне нужно запустить фоновое задание.Spawn node дочерний процесс.Поскольку я новичок, документация немного сбивает с толку.https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options

parent.js

const path = require("path");

const spawn = require('child_process').spawn;

let child = spawn('node', [__dirname + '../../worker/worker.js']);

child.stdout.on('data', function (data) {
      console.log('data available ' + data);
});

child.stderr.on('data', function (data) {
     console.log('There was an error: ' + data);
});

worker.js

function jobListener() {


    let query = { jobname: "countProvider"}
    let result = Job.findOne({ where: query }, function(err, instance) {
        if(err) {
            console.log('Error', err);
        }
      // console.log(instance);
    });

    while (!result) { 
        console.log(result);
       // await sleep(5000);
        console.log('checking for job in mongodb with a delay of 5 seconds');
    }
    if(result) {
        fetchProcedureRequest();
    }
}

jobListener();

function fetchProcedureRequest() {
    console.log('Fetching pREquest');
}

Я пытаюсь добиться получения данных в дочернем процессе.Но как я могу закрыть / выйти из процесса, когда данные доступны в родительском.Кто-нибудь, пожалуйста, помогите, и любое предложение будет по достоинству оценено.

1 Ответ

0 голосов
/ 14 мая 2019

Может быть, вы можете использовать это, найденный здесь Как убить дочерний процесс в nodejs?

var proc = require('child_process').spawn('mongod'); proc.kill('SIGINT');

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