我创建了一个工作:
var kue = require('kue');
var queue = kue.createQueue();
//name of the queue is myQueue
var job = queue.create('myQueue', {
from: 'process1',
type: 'testMessage',
data: {
msg: 'Hello world!'
}
}).save(function(err) {
if (err) {
console.log('Unable to save ' + err);
} else {
console.log('Job ' + job.id + ' saved to the queue.');
}
});有没有办法可以自己更新作业状态(即活动、失败、进行中)?举个例子:
消费者接过这项工作:
queue.process('myQueue', function(job, done){
console.log('IN HERE', job.state) // returns function
});这是从上面返回的函数:
function ( state, fn ) {
if( 0 == arguments.length ) return this._state;
var client = this.client
, fn = fn || noop;
var oldState = this._state;
var multi = client.multi();我想要硬编码作业状态,例如job.state = 'failed',并允许自己在需要时更新作业状态?
在Kue中这是可能的吗?
发布于 2017-05-13 11:18:58
快速回答:是的,您可以使用job.failed()或将错误发送回done。
queue.process('myQueue', function(job, done){
console.log('IN HERE', job.state) // returns function
job.failed();
done(new Error('bad'));
});但是,听起来您想自己处理这个过程。你可以像这样设置你自己的函数。
queue.on('job enqueue', function(id, type){
console.log( 'Job %s got queued of type %s', id, type );
kue.Job.get(id, function(err, job){
if (err) return;
// do your custom processing here
if( something was processed ){
job.complete();
}else{
job.failed();
}
});
});这里还有一些你也可以使用的选项。
job.inactive();
job.active();
job.complete();
job.delayed();在这个页面上有一些例子。https://github.com/Automattic/kue
https://stackoverflow.com/questions/43540568
复制相似问题