问题标签 [bull-queue]

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 投票
1 回答
747 浏览

node.js - 使用 Bull queue 如何以更高的优先级重试失败的作业?

寻找一种方法让公牛以更高的优先级重试失败的工作。更具体地说,我希望在任何未失败的工作之前获得失败的工作。

设置“重试次数”之类的东西相当容易,但关于重试策略 afaik 就没有别的了。

0 投票
0 回答
1122 浏览

node.js - 节点/公牛/人群后台作业。超级慢,而且很多进程都在使用?

我已经将 Node/Express 路由上的一个长时间运行的进程更改为使用 Bull/Redis。

我几乎在 Heroku docs 上复制了本教程

该教程的要点是:Express 路由安排作业,立即向客户端返回 200,并且浏览器长轮询作业状态(Express 上的 ping 路由)。当客户端获得completed状态时,它会在 UI 中显示它。这Worker是一个单独的文件,并使用附加的yarn run worker.js.

请注意它建议Throng用于集群工作人员的末尾。

我正在使用此 Bull Dashboard来监控作业/队列。此仪表板显示可用的工作人员及其状态(未运行时空闲/运行时未处于空闲状态)。

我已经让 MVP 工作了,但是操作非常慢。完成的平均时间是 1 分 30 秒。而之前(在添加 Bull 之前)只需几秒钟即可完成。

另一个奇怪的是,工人状态似乎至少需要 30 秒才能从Idle变为not Idle。似乎很多延迟都在等待工人。

由于新操作是一个单独的文件 (worker.js) 并且throng启用了集群,我期待这个操作非常快,但事实恰恰相反。

有没有人有这方面的经验?或帮助找出导致速度如此缓慢的原因的指针?

0 投票
1 回答
4073 浏览

node.js - 作业卡在公牛队列node.js中的“等待”

当一个工作被卡住 1 个多小时(通常需要大约 2 分钟才能运行)时,我在公牛队列中有一堆工作,但没有失败。我无法使用我使用的公牛竞技场 UI 将作业从活动状态中删除,因此我删除了 Redis 中活动作业的键。

这消除了卡住的活动作业,但现在队列没有将任何作业从等待列表中拉出。

有任何想法吗?关于如何解决它的任何想法?

0 投票
1 回答
7124 浏览

node.js - NodeJS Bull 停止作业上的队列作业失败

我的项目中有多个公牛队列,NodeJS如果前一个队列成功执行,它们将运行。我正在尝试在这里验证一些电子邮件地址。

  1. 检查电子邮件格式(formatQueue)

  2. 使用包的电子邮件存在npm email-existence(existenceQueue)

formatQueue过程花费的时间更少,它将运行RegEx并验证Email格式。但该email-existence包大约需要 5-10 秒才能完成。

formatQueueexistenceQueue如果少于jobs20-100 ,则可以正常工作。但是当我一次添加超过 1000 个工作时,existenceQueue失败并出现以下错误

我检查了HEREHERE的问题,我认为该过程需要很长时间才能响应,所以limiter按照HERE的引用添加。但这对我没有帮助。

如果任何队列中的作业失败,则不会处理下一个作业。它将停在那里,其他工作将保持waiting状态。

我的代码类似于下面的代码。请帮我解决这个问题。

队列.js

- - - - - 更新 - - - - -

处理器花费了太多时间来响应,因此stalled由于我使用超时,因此工作正在获得或失败。

我正在尝试process在不同的processor文件中运行 itef 作为其在bull文档中,我添加了如下文件。

现在在我之前使用的作业完成时,我曾经使用更新的作业参数获取作业数据。现在我没有得到更新的工作数据。文档中的第二个参数resultundefined. 现在在这种情况下如何获取更新的作业数据。

0 投票
1 回答
5118 浏览

node.js - 公牛队列:当一个作业失败时,如何停止队列处理剩余的作业?

我正在使用公牛队列来处理一些工作。在当前场景中,每个作业都是某种操作。因此,每当队列中操作列表中的一个操作(作业)失败时,队列必须停止处理剩余的作业(操作)。

到目前为止我尝试了什么?

因此,当特定作业失败时,我尝试暂停队列。接下来,队列在耗尽时恢复。现在,当它恢复时,队列不会从失败的作业开始,而是选择下一个作业。

电流输出:

当前结果

预期输出:如果Type-1 two在第三次尝试中成功完成。

预期输出:如果Type-1 two第三次尝试也失败。

我想要的只是队列必须停止处理新作业,直到当前作业完成而没有任何失败。如果发生任何故障,失败的作业必须运行一些x时间。在x+1尝试时,它必须清除(删除所有作业)队列。那么如何在队列中实现这种线性行为。

0 投票
1 回答
1257 浏览

node.js - 使用 NodeJS Bull Queue 独立处理器

我正在尝试process在不同的processor文件 itef 中运行它,因为它在bull 文档中,我添加了如下文件。

现在在我之前使用的作业完成时,我曾经使用更新的作业参数获取作业数据。现在我没有得到更新的工作数据。文档中的第二个参数resultundefined. 现在在这种情况下如何获取更新的作业数据。

和工作正常,我运行job如下。processorsprocess

在这种情况下,作业数据本身正在更新,并且效果也很好。

我有多个队列在做不同的工作,一旦前一个工作成功完成,那么只有我需要另一个工作来开始工作。我还有另一个问题,我已经提到了那里的用例。请在这里查看

0 投票
1 回答
496 浏览

javascript - 在公牛队列中运行队列组

我正在用nodejs开发一个应用程序,它管理bull中的队列,它需要异步发出几个HTTP请求,然后我需要得到这些调用的结果并执行一个处理。一直问我公牛是否对这项任务有用,它如何处理多个工作并获得所有工作的结果来执行处理。

0 投票
1 回答
241 浏览

php - 如何将数据从 laravel 发送到使用 Bull 队列实现的 redis 队列

我已经在 Nestjs 项目中实现了 Bull queue,但希望生产者成为 laravel 项目。我使用以下命令生成

Redis::command('zadd', ['bull:test:delayed', 1, $data]);

在消费者使用

在生产者添加的 $data 可以通过 job.id 访问,我如何使用 job.data 访问它并拥有唯一的 id?生产者端需要做哪些改变?

0 投票
2 回答
2312 浏览

javascript - 重启服务器时如何阻止公牛队列自动重启作业

我正在使用公牛队列来处理作业。

假设一个作业正在以active我重新启动开发服务器时的状态运行。当worker脚本再次启动时,该进程仍被设置active在队列中,因此bull决定再次启动worker进程。

这很快就会变得具有破坏性,因为脚本在开发过程中经常会重新启动,因此许多进程最终会运行并把事情弄得一团糟。我想要的只是在服务器启动时不要重新启动这些作业。

我尝试过的事情:

这些都不起作用。任何人都有解决方案来实现这一目标?

0 投票
1 回答
233 浏览

javascript - 在应用程序启动时启动 Bull Queue 进程

我正在创建队列并在我的 API 中添加作业。

我也开始处理我的 API 调用工作。

但是当我重新启动我的应用程序时。队列应按作业计划开始处理。

但它不会自动开始处理。

我能做些什么?有什么办法吗?

谢谢