小编Vin*_*oth的帖子

Node.js - 向child_process发送一个大对象很慢

我的用例如下:我从节点服务器到公共API进行了大量的休息API调用.有时响应很大,有时很小.我的用例要求我对响应JSON进行字符串化.我知道一个大的JSON,因为响应将阻止我的事件循环.经过一些研究后,我决定使用child_process.fork来解析这些响应,以便其他API调用不需要等待.我尝试从我的主进程发送一个30 MB的大JSON文件到分叉的child_process.子进程需要很长时间来挑选和解析json.我期待儿童过程的反应并不大.我只想字符串化并获得长度并发送回主进程.

我附上主码和子码.

var moment = require('moment');
var fs = require('fs');
var process = require('child_process');
var request = require('request');

var start_time = moment.utc().valueOf();

request({url: 'http://localhost:9009/bigjson'}, function (err, resp, body) {

  if (!err && resp.statusCode == 200) {

    console.log('Body Length : ' + body.length);

    var ls = process.fork("response_handler.js", 0);

    ls.on('message', function (message) {
        console.log(moment.utc().valueOf() - start_time);
        console.log(message);
    });
    ls.on('close', function (code) {
        console.log('child process exited with code ' + code);
    });
    ls.on('error', function (err) {
        console.log('Error : ' + err);
    }); …
Run Code Online (Sandbox Code Playgroud)

javascript child-process node.js

13
推荐指数
1
解决办法
2761
查看次数

标签 统计

child-process ×1

javascript ×1

node.js ×1