标签: kue

对于与MongoDB而不是Redis一起使用的Kue有什么好的替代方案?

我正在使用node.js和mongodb构建一个Web应用程序.我需要添加延迟的工作.例如,在注册后一个月向用户发送电子邮件.我没有找到除Kue之外的延迟作业的现有解决方案,但它使用Redis,我更愿意在将另一个资源添加到我的Web应用程序之前使用我现有的Mongodb.

有没有现成的解决方案?

mongodb task-queue node.js kue

5
推荐指数
2
解决办法
6526
查看次数

nodejs Kue作业处理逻辑

我有一个非常简单的逻辑问题.

我将在一个单独的应用服务器上运行作业处理逻辑.

我的工作处理应用程序将是一个独立的应用程序,无需处理任务.

在我的代码中,如何确保我的应用程序不断检查redis服务器的作业? - 我需要在无限循环中运行代码吗? - 或者我需要继续重新启动我的应用程序

或者在Kue有一些内置的机制,我在这里失踪了?

谢谢

redis node.js kue

5
推荐指数
1
解决办法
4125
查看次数

如何使用Kue处理预定的重复性工作?

在我的webapp中,用户可以创建需要生成并在每个月的某些日期发送的定期发票.例如,可能需要在每个月的5号发送发票.

我正在使用Kue来处理我所有的后台工作,所以我也想在这种情况下这样做.

我目前的解决方案是每小时setInterval()创建一份processRecurringInvoices工作.然后,此作业将从数据库中查找所有定期发票,并generateInvoice为每个定期发票创建单独的作业.

然后,generateInvoice作业将实际生成发票,如果需要,还将创建sendInvoiceToEmail将通过电子邮件发送发票的作业.

目前这个解决方案对我来说很好,因为它有一个很好的关注点,但是,我有以下问题:

  1. 在主要processRecurringInvoices工作上调用done()之前,我不确定是否应该等待所有"子"工作完成?
  2. 我应该在哪里处理错误?我应该把它们送回processRecurringInvoices工作岗位,还是应该为每项工作单独处理?
  3. 如何确保如果处理需要更长时间(超过一小时),并且任何一个processRecurringInvoices或任何子作业仍在运行,processRecurringInvoices则不会再次创建作业?有点像独特的工作,还是互相排斥?

worker job-queue node.js kue

4
推荐指数
1
解决办法
1784
查看次数

每个人如何在解析服务器上实现预定作业/云作业?

根据解析服务器迁移指南,我们可以使用KueKue-UI之类的东西来模拟parse.com预定作业功能.

我没有实现Kue或Kue-ui,但是看一下这些指南,它看起来并不像现有的parse.com预定作业那样提供接近相同级别的功能.这个观察是否正确?有人实施了吗?是不是必须通过jue中的Kue安排工作,而Kue-ui只提供工作当前状态的摘要,并且不能通过Kue-ui添加新的时间表?

有没有人试图用Jenkins这样的结果取得同样的结果?所以这就是我的想法:

  • 每个作业仍将在云代码Parse.Cloud.job中定义("job01",函数(请求,响应){));
  • 稍微修改parse-server以在类似于现有云功能的URL上公开作业,例如/ parse/jobs/job01(这可能很快存在于解析服务器中:github.com/ParsePlatform/parse-server/pull/2560)
  • 创建一个新的jenkins工作在该URL上做一个卷曲
  • 从jenkins web ui中为jenkins工作定义一个类似cron的计划

我可以看到以下好处:

  • 几乎没有编码
  • 设置jenkins听起来比设置kue,redis和kue-ui要少得多
  • 现有的云作业/定义保持完全相同
  • 安排并通过jenkins web ui手动触发工作

当前parse.com调度作业/云作业唯一可以做到的就是基于jenkins的解决方案无法从下拉列表中选择作业名称来创建新计划.

我错过了什么吗?其他人怎么样呢?谢谢.

jobs kue parse-server

4
推荐指数
1
解决办法
1502
查看次数

如何让客户端下载一个动态生成的非常大的文件

我有一个导出函数,它读取整个数据库并创建一个包含所有记录的.xls文件.然后将文件发送到客户端.

当然,导出完整数据库的时间需要很多时间,并且请求很快就会以超时错误结束.

处理这种情况的最佳解决方案是什么?

我听说过一些关于使用Redis建立队列的事情,但这需要两个请求:一个用于启动将生成文件的作业,另一个用于下载生成的文件.

这是否可以通过客户的单一请求进行?

queue jobs redis node.js kue

4
推荐指数
1
解决办法
3474
查看次数

Node.js Kue工作者发送结果

我的应用程序利用Kue对请求进行排队,worker.js因为我需要通过Proximo发送作业发出的请求 - 这有点令人困惑.但正因为如此,作业的结果无法发送回用户.以前工作会res.send(results)然后用户会有数据.

让Kue'ed工作将结果发回给用户的最佳方法是什么?我现在能想到的唯一方法是使用Web钩子,但这不是最有效的方法,它在用户和数据之间建立了一道墙.

heroku worker node.js kue

3
推荐指数
1
解决办法
2248
查看次数

Javascript - 函数函数?

我最近为node.js使用了一个名为Kue的漂亮库.
我想更好地理解发生了什么,所以我开始阅读代码......

我偶然发现了一段代码,我的脑海里出现了"WTF !!?!@ $ @!$"......
这是代码:

function get(obj) {
  var pending = 0
    , res = {}
    , callback
    , done;

  return function _(arg){
    switch (typeof arg) {
      case 'function':
        callback = arg;
        break;
      case 'string':
        ++pending;
        obj[arg](function(err, val){
          if (done) return;
          if (err) return done = true, callback(err);
          res[arg] = val;
          --pending || callback(null, res);
        });
        break;
    }
    return _;
  };
}
Run Code Online (Sandbox Code Playgroud)

正如此使用:

exports.stats = function(req, res){
  get(queue)
    ('inactiveCount')
    ('completeCount')
    ('activeCount')
    ('failedCount')
    ('delayedCount')
    ('workTime')
    (function(err, obj){ …
Run Code Online (Sandbox Code Playgroud)

javascript node.js kue

3
推荐指数
1
解决办法
104
查看次数