私はchild_process forkに関するいくつかの問題に直面しました。それはstdioのようなものです。forkedの子プロセスがnode.jsでハングする
私はいくつかのjsコードでフォークした後、子供はストリーミングデータを要求し、データを受け取った後、ただデータを親に送ります。 ログに「Count [1503]」というログが記録された後、子ログにログを追加したとき。 (私はあなたが試すしかしmanytimesあなたの場合も、1499年にはわからないけど、まったく同じデータ)
私はちょうど 以下のサンプルコードを作る(test.jsをexcute)
//
をtest.jsvar express = require('express'),
app = express(),
child_process = require('child_process');
app.listen(3030, function() {
console.log('service started');
});
var child = child_process.fork(__dirname + '/test_child.js', [], { silent: true });
child.on('exit', function(code, signal) {
console.log('exit\n', code, signal);
})
//は、私はそれがおよそstdioの関連バッファだと思う理由は、私がログとしていくつかのテキストを追加する場合、カウントはログインしている
var winston = require('winston'),
logger = new winston.Logger({
level: 'silly',
transports: [
new (winston.transports.File)({
name: 'mainLog',
filename: 'child_test.log',
level: 'silly'
}),
new (winston.transports.Console)({
colorize: true,
})
]
});
var interval = 2,
cnt = 1,
count = 1;
setInterval(function() {
logger.info('Count[%d]', count++);
}, interval)
setInterval(function() {
logger.info('CNT[%d]', cnt++);
}, interval)
をtest_child.js短くなる。
Node.jsの事前の
感謝を認識している人、私を助けてください。
ありがとうございました!私はストリームバッファをフラッシュしていないと思っていました。 – user1971888