问题标签 [kue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1865 浏览

jobs - 每个人都如何在解析服务器上实现计划作业/云作业?

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

我还没有实现 Kue 或 Kue-ui,但查看指南,它看起来不像提供与现有 parse.com 计划作业相同级别的功能。这个观察正确吗?有人实施了吗?是否必须通过 JavaScript 中的 Kue 调度作业,而 Kue-ui 仅提供作业当前状态的摘要,而无法通过 Kue-ui 添加新的调度是真的吗?

有没有人试图用像詹金斯这样的东西来达到同样的结果?所以这就是我的想法:

  • 每个作业仍将在云代码中定义 Parse.Cloud.job("job01", function(request, response) {));
  • 稍微修改 parse-server 以在与现有云函数类似的 url 处公开作业,例如 /parse/jobs/job01 (这可能很快就会出现在 parse-server 中:github.com/ParsePlatform/parse-server/pull/2560)
  • 创建一个新的詹金斯工作在那个网址做一个卷曲
  • 从 jenkins web ui 中为 jenkins 作业定义一个类似 cron 的时间表

我可以看到的好处是:

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

当前 parse.com 计划作业/云作业可以做的唯一的事情是基于詹金斯的解决方案不能选择一个作业名称来从下拉列表中创建一个新的计划。

我错过了什么吗?其他人是怎么做的?谢谢。

0 投票
0 回答
125 浏览

node.js - 基于套接字 io 的应用程序

我正在计划一个文件处理网络应用程序的实现。这个想法是有一个排队机制,用户上传可以排队的文件,并且 Worker Nodejs 进程可以从队列中获取未处理的记录。

对于队列部分,我遇到了https://github.com/Automattic/kue。阅读文档后,我有点理解队列对象启动进程

我的第一个问题是:他们是否有办法让另一个工作进程可以“选择”来处理该条目本身,而不是队列本身启动进程?或者我可以将每个作业分配给目标工作进程

我的第二个问题是:假设每个工作进程在分配给它的时间获得一份工作。并且套接字端点想要向将该文件上传到 Web 服务器的任何人发送进度通知,socket.io 可以向特定 IP 发出消息吗?我知道每个客户端(浏览器)都必须连接到套接字服务器才能开始接收消息。但在我的情况下, Worker 进程计划从 Queue 中选择条目。从服务器端启动socket.io连接是否可行......而不是浏览器启动它......?

希望得到一些想法。因为我没有为nodejs工作进程的多个实例编写太多代码。

这是我的意思的说明基本上在这里输入图像描述

0 投票
0 回答
1210 浏览

javascript - 如何在 Kue 管理卡住的工作?

我正在Kue为我的应用程序创建工作MEAN.js。如果应用程序空闲一段时间 Redis 连接关闭,显然 Kue 正在尝试在连接关闭时处理作业,我得到一些错误。

我每 6 秒查看一次卡住的作业,但这似乎无助于避免错误。

这些是我得到的错误,对于我正在处理的每个作业,在连接关闭之后和连接恢复之前:

我一直在阅读有关卡住作业的 Kue 文档,但他们推荐的解决方案是使用Domains,我使用的 Node 版本已弃用;使用承诺或将错误绑定到uncaughtException,这将丢失错误上下文。

在这种情况下,最好的方法是什么,这样我就不会丢失错误上下文,并且可以跟踪作业发生了什么?

如果我必须选择其中一个选项,我可以选择哪个是最好的,为什么?

我需要注意任何 Redis 配置或 Kue 之外的任何内容吗?

0 投票
0 回答
74 浏览

javascript - kue/如何限制并发活动作业?

我有问题,我默认设置并发(1)

但是,当我通过执行()添加新作业时,我在 kue 活动列表中看到新作业并再次添加,我只能在活动列表中无限添加它们,尽管我默认设置为并发( 1)。

这对我来说很完美,如果每个工作先进入 kue 非活动列表,然后再以 2 或 1 进入活动列表,我如何设置它

0 投票
1 回答
331 浏览

node.js - 同一个 Redis 实例可以和 kue.js 一起手动使用吗?

我正在使用 kue.js,它是一个 redis 支持的节点优先级队列,用于非常简单的作业队列内容(发送邮件、数据库工作人员的任务)。

作为同一个应用程序的一部分(尽管在不同的服务中),我现在想使用 redis 手动存储一些 url-shortener 的映射。并发手动使用与 kue.js 相同的 redis 实例和数据库是否会干扰 kue,即 kue 是否需要对其 redis 实例的独占访问权限?

或者我可以手动使用相同的 redis 实例,只要我避免某些键前缀?

我确实知道我可以在同一个实例上使用多个数据库,但发现来自各种来源的大量喋喋不休不鼓励使用数据库功能以及谈论它在未来被弃用,这就是我想使用的原因如果可能的话,现在使用相同的数据库。

非常欢迎对此的任何见解以及考虑或建议,为什么这可能是一个坏主意,也可能不是一个坏主意,在此先感谢!

0 投票
1 回答
330 浏览

javascript - NodeJS, ParseServer, kue-scheduler Query.every

我正在使用 ParseServer( v2.2.16) 和 kue-sheduler( v0.6.0),我Query.every看起来像:Queue.every('0 12 * * *', job);,我期望 cron 格式将在job每天下午 12 点启动,我尝试了这么多格式,但没有任何效果,一个小时后或所以任务启动了,也许我应该尝试另一种格式?,我的格式错了吗?,还有别的吗?

0 投票
0 回答
214 浏览

javascript - 使用 Kue 在 forEach 循环中创建多个作业

我试图在一个forEach循环中创建多个工作kue,在我forEach的每个创建的工作中我都返回一个新的 Promise。每个工作都有相同的密钥,但在data. 但是,kue使用列表中的最后一个电子邮件地址创建所有作业。我似乎无法弄清楚如何防止这个问题。这是一些代码:

为 . 创建 3 个队列'efg@test.com'。我怎样才能让它为每封电子邮件创建一个队列?

谢谢。

0 投票
0 回答
426 浏览

node.js - 错误:作业 x 不存在

有人知道为什么我会出现这个问题以及如何解决它吗?我不手动删除任何作业,仅使用我为具有不同参数.removeOnComplete(true)的同一作业使用一些不同的作业处理器。task可能会导致问题吗?这种情况下该怎么办?

错误:

0 投票
0 回答
910 浏览

node.js - docker-compose 设置不允许容器连接到 redis

所以我正在编写一个节点应用程序,我的 docker-compose.yml 看起来像:

非常简单,一个网络服务器和两个处理电子邮件和短信工作的工作人员。一切都很好,直到今天下午,似乎什么都没有改变,但是当我的应用程序启动时,我无法再连接到 redis 容器。docker-compose up尝试使用kuenode 模块连接到 redis 时,我运行并收到以下错误:

kue与 redis 的连接如下所示:

有什么想法我在这里出错了吗?我昨晚刚设置好,电子邮件就被愉快地发送了,就像我提到的,唯一会改变的是网络服务中的应用程序代码。如果这有所不同,我正在 Mac 上开发,并且拥有最新版本的 docker 和 docker-compose。docker ps做了一个节目docker-compose up后:

0 投票
1 回答
959 浏览

javascript - 检查队列是否存在

我正在尝试使用 Kue 来安排工作。

但是我正在尝试找到一种方法来检查是否已经存在具有某个名称的队列。

到目前为止,这是我的代码。问题是每次我运行节点时它都会不断创建队列。

如何检查队列名称“电子邮件”是否已存在?