node.js的类似Sidekiq的工作系统是什么?

时间:2016-03-04 08:05:03

标签: javascript node.js job-scheduling job-queue

(这里提到的关于这个主题的大多数问题有点陈旧,我想知道那些年来Node生态系统发生了哪些变化。)

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

工作人员将使用Javascript编写,因此它不必是多语言(如果它是好的,但绝对不是必需的。)

一个很大的优点是可视化当前正在运行的作业,那些失败的作业等。

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

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

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

The node.js (and TypeScript) client can be found here

自述文件:

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

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

基本功能:

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

您可以在Sidekiq Pro和Sidekiq Enterprise中熟悉的其他功能获得Enterprise和Pro许可。

我发现自己在此线程上是因为我搜索“ node.js sidekiq”以查找相同的内容,然后突然(尴尬地)想起了Faktory。

答案 2 :(得分:-3)

你可以简单地使用Sidekiq,有npm接口。

npm包位于:https://www.npmjs.com/package/sidekiq