node.js - 使用node.js和Kue,有没有办法让我的代码无论类型如何都能获取下一个任务?

标签 node.js

按照我理解 Kue 工作方式的方式,我需要指定我将获得的工作类型:

jobs.process('email', function(job, done){
    var pending = 5
      , total = pending;

    setInterval(function(){
      job.log('sending!');
      job.progress(total - pending, total);
      --pending || done();
    }, 1000);
  }); 

其中“电子邮件”是作业类型。我想做的是获取队列中的下一个工作,无论类型如何。这可行吗?

作为引用,我的对象具有与工作名称相同的方法,因此无论我退出哪种工作,我总是可以与我的工作人员一起处理它。

最佳答案

我最终所做的是制定几个大类的任务,并将工作人员的姓名插入到所有任务中,作为工作的一部分。代码最终如下所示:

jobs.process('social_post', function(job, done){
    var this_worker = factory(job.data.worker);
    this_worker(job,done);
  });

工厂非常简单:

var worker_factory = function(worker_name) {
    switch(worker_name){
        case 'facebook':
            return FacebookWorker;
        case 'social_response':
            return SocialResponder;

    };
};

我使用响应者队列对于 Kue 已经功能齐全的任务管理来说有点过分了。

希望这有帮助。

关于node.js - 使用node.js和Kue,有没有办法让我的代码无论类型如何都能获取下一个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10456350/

相关文章:

node.js - NestJS 创建一个新实例,自定义参数留在依赖注入(inject)层

javascript - 哪些文件应与 Node 应用程序一起提供给产品

python - Python-Shell/Node JS输出为空

php - 使用 PHP 创建实时网站

node.js - 未捕获( promise )ReferenceError : Buffer is not defined in vite/sveltekit with Torus

node.js - aws xray 采样不适用于 http 状态代码

node.js - Sequelize 在两个表上连接两次

node.js - 使用 jade 模板引擎从文件系统刷新 Node.js 中的信息

node.js - 如何使用 Angular 2+、Express 和 nodeJs 上传文件

node.js - 安装 npm 包失败 "npm ERR! errno -4048"