14

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

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

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

一个很大的优点是可视化当前正在运行的作业、失败的作业等的简单方法。

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

4

2 回答 2

9

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

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

于 2016-07-01T22:01:45.923 回答
3

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

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

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

从自述文件:

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

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

基本特点:

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

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

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

于 2020-08-15T15:00:09.097 回答