对于node.js来说,什么是一个好的类似Sidekiq的作业系统?

问题描述 投票:0回答:3

(这里提出的关于这个主题的大多数问题都有点老了,我想知道这些年来 Node 生态系统发生了什么变化。)

我基本上希望在我的应用程序中使用 Node.js 实现作业队列。 我听说过并见过 Sidekiq 在 Ruby 世界中的应用,以及它的出色工作,并且想知道 Node 中是否存在类似的东西。

Workers 将用 Javascript 编写,因此不必使用多种语言(如果是的话那就太好了,但绝对不是必需的)。

一个很大的优点是可以轻松地可视化当前正在运行的作业、失败的作业等。

你们都用什么?您知道哪些库/服务符合这些要求?

javascript node.js job-scheduling job-queue
3个回答
9
投票

尝试https://github.com/taskrabbit/node-resque

Resque 和 Sidekiq 共享相同的数据结构。在节点中,同时处理多个作业非常简单。


9
投票

免责声明:我为 Faktory 开发和维护 Node.js 模块。

Sidekiq 的作者创建了一个由 redis 支持的与语言无关的作业队列服务器。它称为 Faktory,它在作业服务器端实现了 Sidekiq(以及更多)的最佳部分,因此您可以使用任何语言(有客户端库可用)获得类似 sidekiq 的作业处理。

node.js(和 TypeScript)客户端可以在这里找到

来自自述文件:

从较高层面来说,Faktory 是一个工作服务器。它是应用程序中后台作业的存储库。作业有一个类型和一组参数,并被放入队列中供工作人员获取和执行。

您可以使用此服务器将作业分发到一台或数百台机器。客户端可以使用 Faktory API 从队列中获取作业,以任何语言执行作业。

基本特点:

  • 作业表示为 JSON 哈希值。
  • 作业被推送到队列或从队列中获取。
  • 作业保留超时,默认30分钟。
  • 在预留超时时间内失败或未确认的作业将重新排队。
  • 失败的作业会触发具有指数退避的重试工作流程。
  • 包含用于管理和监控的全面 Web UI。

企业版和专业版许可可用于您可能熟悉的 Sidekiq Pro 和 Sidekiq Enterprise 中的额外功能。

我发现自己在这个线程上,因为我搜索“node.js sidekiq”来寻找相同的东西,然后突然(尴尬地)想起了 Faktory。


0
投票

截至 2024 年 2 月,Github 受欢迎程度按递减顺序排列:

  1. Bull(尽管活动分支在 Typescript 中被重写为 BullMQ
  2. 议程
  3. Faktory(来自Sidekiq的作者)
  4. 蜜蜂队列
  5. 节点响应
© www.soinside.com 2019 - 2024. All rights reserved.