问题标签 [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 投票
2 回答
1642 浏览

node.js - 测试使用 Kue 的 Node.js 应用程序

我想测试一个使用Kue的应用程序,以便在每次测试之前作业队列为空,并在每次测试后清除。队列应该功能齐全,我需要能够检查已经在队列中的作业的状态。

我尝试了mock-kue,它运行良好,直到我不得不从队列中获取工作并分析它们。我无法让它通过工作 ID 返回工作。

我需要能够测试的情况:

  1. 发生了一些事情,队列中应该有给定类型的作业,
  2. 某事发生并产生一份工作。发生了其他事情,该工作被删除并替换为另一个工作(重新安排或现有工作)。

接缝很简单,但我很难解决这个问题。欢迎所有指针。

0 投票
1 回答
675 浏览

node.js - nodejs Kue 的条件尝试

我在一个网络爬虫应用程序中使用kue 。attempts如果错误符合特定条件,我想为某些失败的作业进行设置。例如,如果错误是由套接字挂起引起的,则作业将以 1 分钟的间隔重试 3 次。

我的代码如下所示,但不起作用

0 投票
1 回答
5009 浏览

node.js - nodejs Kue作业处理逻辑

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

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

我的工作处理应用程序将是一个独立的应用程序,什么都不做,只是处理工作。

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

还是在 Kue 中有一些我在这里缺少的内置机制?

谢谢

0 投票
1 回答
509 浏览

javascript - 带有 createClientFactory 的 Kue 工作者:只能使用订阅者命令

我正在努力让我的 kue 工人建立起来,并发现了一些奇怪的东西。如果我使用默认的 kue redis 连接创建我的队列,一切都会完美运行:

工人完美启动。但是,如果我尝试用我自己的一个覆盖默认的 redis 连接,我会得到一个

错误:以订阅者模式连接,只能使用订阅者命令

当执行到达下面的 q.process 函数时:

这似乎没有任何意义。我想也许我犯了一个经典的异步错误,但即使是以下我也得到了同样的错误。 有什么见解吗?

0 投票
1 回答
301 浏览

node.js - node.js 中的外部 API 调用是否需要工作进程?

我知道像 Rails 这样的“阻塞”服务器架构要求您将耗时的外部 API 调用卸载到工作进程(即作业队列),以防止它们阻塞服务器进程。

node.js也是这种情况吗?或者它的“非阻塞”架构是否意味着它可以在不拒绝或减慢后续服务器请求的情况下进行不完整的外部 API 调用?

0 投票
1 回答
497 浏览

javascript - Kue: 队列为空时通知的事件

我在我的一个项目中使用kue从数据库中删除过时的锁。我能够处理单个作业,例如更新 mongoDB 中的单个文档。

但是,我想通过收集队列处理后的所有 id 来一次更新所有文档。我什至可以存储所有 ID。唯一的问题是,当队列被处理时,我无法跟踪某种事件来同步整个过程。

0 投票
0 回答
102 浏览

kue - 为什么在 kue 中重复相同的 Job?

我正在遍历 mongodb 中的一堆记录并将它们放入 kue 进行一些处理,我不会在此处放入所有代码,因为它似乎确实不适用,但我执行以下操作:

如果在这种情况下有什么我不应该做的事情,比如不在循环中创建队列,请指出。但无论如何,当我执行 console.log 时,我会得到如下内容:

这是我所期望的。

但是在我的观察者中,当我执行以下操作时:

我得到以下信息:

一次又一次,一次又一次。一直只有那条记录,这对我来说意味着有一些我看不到的异步情况,或者我完全误解了 kue 将如何工作,因为这实际上是我保存的最后一份工作。我在这里的主要问题可能是我有点习惯于 resque 做事的方式,这似乎有点不对劲。

0 投票
1 回答
2201 浏览

node.js - Sinon 存根链式方法

我的 SailsJs 控制器中有以下代码:

在我的测试中,我试图Jobs像这样存根:

但是我的测试在 2000 毫秒后超时并且失败了。

如何存根这些方法以使测试通过?

0 投票
1 回答
3019 浏览

javascript - Node.js Kue autoprocessing jobs if queue is not empty

I'm new to Kue and have some questions. Hope you can help me :)

I read all Kue's docs, but I saw only one way to process jobs in queue: call processing manually. I need to process jobs as soon as they get to queue if queue was empty and run rest jobs after previous was done if queue is not empty. Is there any way to do it? Thank you.

Or if I rephrase question: What will happen if jobs with specific type will run out from queue? Should I start processing again or it will be autocalled as soon as new job appear?

Actually, I need to spread API requests due time, since server-side limits requests.

0 投票
1 回答
610 浏览

node.js - 来自客户的 Kue 工作进度

我正在运行一个 Heroku 应用程序,其中有一个后台工作人员使用 Kue 处理作业。因为 heroku 终止并重新启动任何需要超过 30 秒的请求,所以我最终将响应发送回客户端jobs.create()(在完成之前)。

由于其中一些工作需要几分钟才能完成,从客户那里检查进度的最佳方法是什么?

到目前为止,我能看到的最佳解决方案是将作业 ID 发送回客户端,然后每 x 秒检查一次作业进度: