Kue を使用して、ジョブ キューを介して CPU を集中的に使用する計算を実行する子プロセスを生成しようとしています。現時点での私のコードは次のようになります。
consumer.js
var kue = require('kue');
var util = require('util');
var spawn = require('child_process').spawn;
var jobs = kue.createQueue();
jobs.process('calc', 2, function(job, done){
var work = spawn('Rscript', ['opti2.R', job.data.file]);
work.stderr.on('data', function (data) {
job.log('stderr: ' + data);
});
work.stdout.on('data', function (data) {
job.log('stdout: ' + data);
});
work.on('exit', function (code, signal) {
console.log('child process exited with code ' + code + ' with singal ' + signal);
if(code != 0){
done(****How to get the stderr of the child process as an error here***);
} else {
done(Error());
}
});
});
コードは私がやりたいことをいくらか実行しますが、ジョブが失敗したことを (Kue に) 報告し、生成されたプロセスから stderr を取得するより良い方法はありますか?