【发布时间】:2014-08-17 00:25:30
【问题描述】:
我尝试使用 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)并从生成的进程中获取标准错误?
【问题讨论】:
-
您希望将孩子的
stdio传送到父母的stdio,还是将其发送到Kue? -
@LeonidBeschastny:不确定(对节点/编程来说非常新),但希望将生成过程中的错误作为 Kue 中的错误/失败消息。你有什么推荐的?
标签: node.js child-process kue