首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新KUE节点js中的作业状态

更新KUE节点js中的作业状态
EN

Stack Overflow用户
提问于 2017-04-21 18:39:36
回答 1查看 1.3K关注 0票数 0

我创建了一个工作:

代码语言:javascript
复制
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.');
    }
});

有没有办法可以自己更新作业状态(即活动、失败、进行中)?举个例子:

消费者接过这项工作:

代码语言:javascript
复制
queue.process('myQueue', function(job, done){
  console.log('IN HERE', job.state) // returns function
});

这是从上面返回的函数:

代码语言:javascript
复制
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中这是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-13 11:18:58

快速回答:是的,您可以使用job.failed()或将错误发送回done。

代码语言:javascript
复制
queue.process('myQueue', function(job, done){
  console.log('IN HERE', job.state) // returns function

  job.failed();
  done(new Error('bad'));
});

但是,听起来您想自己处理这个过程。你可以像这样设置你自己的函数。

代码语言:javascript
复制
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();
      }
   });
});

这里还有一些你也可以使用的选项。

代码语言:javascript
复制
job.inactive(); 
job.active();
job.complete();
job.delayed();

在这个页面上有一些例子。https://github.com/Automattic/kue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43540568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档