KUE可以执行外部stream程吗?

是否有可能在KUE https://github.com/LearnBoost/kue中将脚本作为作业进行排队和执行?

/usr/bin/myScript.sh -a 10 -b 20 -c 30这样的脚本
我所见过的所有例子都假定这个工作被定义为Node.js函数。

如果可能,我如何定义作业名称,脚本path和脚本参数?

对于同一个任务,有没有比KUE更好的select。
最好用UI和小内存占用。 🙂

首先,编写一个节点工作者来使用Kue作业。 例如: worker.js

然后,添加kue代码:

 var kue = require('kue') , queue = kue.createQueue(); 

并添加监听器到你想要的代码:

 queue.process('MYEXTERNALJOB', function(job, done){ runJob(job.data, done); }); 

试试child_process.exec

 function runJob(data, done){ //You can use the job's data object to pass your external script parameters var a = data.a; var b = data.b; var c = data.c; var yourCode = '/usr/bin/myScript.sh -a ' + a + ' -b ' + b + ' -c ' + c var exec = require('child_process').exec, child; child = exec(yourCode, function (error, stdout, stderr) { console.log('stdout: ' + stdout); console.log('stderr: ' + stderr); if (error !== null) { console.log('exec error: ' + error); done(error); //callback with error for your publisher code }else{ done(null, stdout); // callback with the results, which you can potentially use on your publisher code } }); } } 

然后,记住运行你的工作,这样可以轮询Kue工作:

 $ node worker.js 

现在,您只需要为主代码上的MYEXTERNALJOB创build作业

 var kue = require('kue') , queue = kue.createQueue(); var job = queue.create('MYEXTERNALJOB', { a: 10 , b: 20 , c: 30 }).save( function(err){ if( !err ) console.log( job.id ); }); 

请记住添加事件处理程序的completefailedfailed attempt save之前。