问题标签 [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.
node.js - 使用 Bull queue 如何以更高的优先级重试失败的作业?
寻找一种方法让公牛以更高的优先级重试失败的工作。更具体地说,我希望在任何未失败的工作之前获得失败的工作。
设置“重试次数”之类的东西相当容易,但关于重试策略 afaik 就没有别的了。
node.js - 节点/公牛/人群后台作业。超级慢,而且很多进程都在使用?
我已经将 Node/Express 路由上的一个长时间运行的进程更改为使用 Bull/Redis。
该教程的要点是: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
启用了集群,我期待这个操作非常快,但事实恰恰相反。
有没有人有这方面的经验?或帮助找出导致速度如此缓慢的原因的指针?
node.js - 作业卡在公牛队列node.js中的“等待”
当一个工作被卡住 1 个多小时(通常需要大约 2 分钟才能运行)时,我在公牛队列中有一堆工作,但没有失败。我无法使用我使用的公牛竞技场 UI 将作业从活动状态中删除,因此我删除了 Redis 中活动作业的键。
这消除了卡住的活动作业,但现在队列没有将任何作业从等待列表中拉出。
有任何想法吗?关于如何解决它的任何想法?
node.js - NodeJS Bull 停止作业上的队列作业失败
我的项目中有多个公牛队列,NodeJS
如果前一个队列成功执行,它们将运行。我正在尝试在这里验证一些电子邮件地址。
检查电子邮件格式(formatQueue)
使用包的电子邮件存在
npm email-existence
(existenceQueue)
该formatQueue
过程花费的时间更少,它将运行RegEx
并验证Email
格式。但该email-existence
包大约需要 5-10 秒才能完成。
formatQueue
existenceQueue
如果少于jobs
20-100 ,则可以正常工作。但是当我一次添加超过 1000 个工作时,existenceQueue
失败并出现以下错误
我检查了HERE和HERE的问题,我认为该过程需要很长时间才能响应,所以limiter
按照HERE的引用添加。但这对我没有帮助。
如果任何队列中的作业失败,则不会处理下一个作业。它将停在那里,其他工作将保持waiting
状态。
我的代码类似于下面的代码。请帮我解决这个问题。
队列.js
- - - - - 更新 - - - - -
处理器花费了太多时间来响应,因此stalled
由于我使用超时,因此工作正在获得或失败。
我正在尝试process
在不同的processor
文件中运行 itef 作为其在bull
文档中,我添加了如下文件。
现在在我之前使用的作业完成时,我曾经使用更新的作业参数获取作业数据。现在我没有得到更新的工作数据。文档中的第二个参数result
是undefined
. 现在在这种情况下如何获取更新的作业数据。
node.js - 公牛队列:当一个作业失败时,如何停止队列处理剩余的作业?
我正在使用公牛队列来处理一些工作。在当前场景中,每个作业都是某种操作。因此,每当队列中操作列表中的一个操作(作业)失败时,队列必须停止处理剩余的作业(操作)。
到目前为止我尝试了什么?
因此,当特定作业失败时,我尝试暂停队列。接下来,队列在耗尽时恢复。现在,当它恢复时,队列不会从失败的作业开始,而是选择下一个作业。
电流输出:
预期输出:如果Type-1 two
在第三次尝试中成功完成。
预期输出:如果Type-1 two
第三次尝试也失败。
我想要的只是队列必须停止处理新作业,直到当前作业完成而没有任何失败。如果发生任何故障,失败的作业必须运行一些x
时间。在x+1
尝试时,它必须清除(删除所有作业)队列。那么如何在队列中实现这种线性行为。
javascript - 在公牛队列中运行队列组
我正在用nodejs开发一个应用程序,它管理bull中的队列,它需要异步发出几个HTTP请求,然后我需要得到这些调用的结果并执行一个处理。一直问我公牛是否对这项任务有用,它如何处理多个工作并获得所有工作的结果来执行处理。
php - 如何将数据从 laravel 发送到使用 Bull 队列实现的 redis 队列
我已经在 Nestjs 项目中实现了 Bull queue,但希望生产者成为 laravel 项目。我使用以下命令生成
Redis::command('zadd', ['bull:test:delayed', 1, $data]);
在消费者使用
在生产者添加的 $data 可以通过 job.id 访问,我如何使用 job.data 访问它并拥有唯一的 id?生产者端需要做哪些改变?
javascript - 重启服务器时如何阻止公牛队列自动重启作业
我正在使用公牛队列来处理作业。
假设一个作业正在以active
我重新启动开发服务器时的状态运行。当worker脚本再次启动时,该进程仍被设置active
在队列中,因此bull决定再次启动worker进程。
这很快就会变得具有破坏性,因为脚本在开发过程中经常会重新启动,因此许多进程最终会运行并把事情弄得一团糟。我想要的只是在服务器启动时不要重新启动这些作业。
我尝试过的事情:
attempts: 1
创建作业时的设置(也尝试了 0) https://github.com/OptimalBits/bull/blob/HEAD/REFERENCE.md#queueadd- 使用 queue.clean() ( https://github.com/OptimalBits/bull/blob/HEAD/REFERENCE.md#queueclean )
- 编写脚本以删除活动作业(抛出错误:作业 xx 缺少锁失败):
这些都不起作用。任何人都有解决方案来实现这一目标?
javascript - 在应用程序启动时启动 Bull Queue 进程
我正在创建队列并在我的 API 中添加作业。
我也开始处理我的 API 调用工作。
但是当我重新启动我的应用程序时。队列应按作业计划开始处理。
但它不会自动开始处理。
我能做些什么?有什么办法吗?
谢谢