如何retreieve与KUE特定状态的作业?(How to retreieve jobs with

2019-08-16 17:29发布

我使用KUE我的工作队列中,我想知道在不使用GUI多少作业仍然留下,有多少人失败了,等我怎样才能检索到这样的信息?

例如,在开始作业队列的处理几分钟后,我想O更新失败,到目前为止,“无效”的所有作业的状态,以重新启动它们。

唯一相关的问题我能找到的计算器是这个 ,但是,它同时具有一个作业交易,因为它正在处理它触发某个事件之后。 我关心的是不同的,因为我感兴趣的检索数据库中的所有作业有一定的地位。

在回答这个问题提到了KUE库的功能.complete,其检索所有完成的作业在数据库中。 对于其他可能的作业状态有类似的功能?

Answer 1:

我通过浏览KUE源代码中发现的溶液。 下面的代码实现了什么,我需要:

var redis = require ('redis'),
    kue = require ('kue'),
    redisClient = redis.createClient(6379, "127.0.0.1");

kue.redis.createClient = function () {
    return redisClient;
};

kue.app.listen(3000); 


kue.Job.rangeByType ('job', 'failed', 0, 10, 'asc', function (err, selectedJobs) {
    selectedJobs.forEach(function (job) {
        job.state('inactive').save();
    });
});

作为参考,这里是有关KUE源代码:

/queue/job.js:123:

/**
 * Get jobs of `type` and `state`, with the range `from`..`to`
 * and invoke callback `fn(err, ids)`.
 *
 * @param {String} type
 * @param {String} state
 * @param {Number} from
 * @param {Number} to
 * @param {String} order
 * @param {Function} fn
 * @api public
 */

exports.rangeByType = function(type, state, from, to, order, fn){
  redis.client().zrange('q:jobs:' + type + ':' + state, from, to, get(fn, order));
};

指示苦厄源代码:

  • type为作业类型
  • fromto是作业通过指数范围(例如,可以指定负载作业从索引0到10,共有11个作业)。
  • order指定取作业的顺序。 默认为asc 。 您还可以通过对其进行排序desc


文章来源: How to retreieve jobs with specific status in kue?
标签: node.js kue