什么是好的节点.js类 Sidekiq 作业系统

What is a good Sidekiq-like job system for node.js?

本文关键字:Sidekiq 作业 系统 js 节点 什么      更新时间:2023-09-26

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

我基本上希望在node.js的应用程序中实现作业队列。我听说过并看到了 Sidekiq 在 Ruby 世界中的实际应用,以及它所做的工作有多棒,并且想知道 node 中是否存在类似的东西。

worker将用Javascript编写,所以它不必是多语言的(如果是的话,那就太好了,但绝对不是必需的)。

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

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

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

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

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

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

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

来自自述文件:

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

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

基本功能:

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

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

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