node.js工作场和队列pipe理

我正在寻找一个解决scheme来使用node.js创build一个“worker farm”。 基本上,我们在节点上有一个应用程序,我们需要发送“作业”在n个工作服务器上运行。 例如,假设我们有5台服务器都运行某些作业,这些作业需要分配或“排队”,直到工作人员有可用的CPU来处理作业。

做到这一点的一种方法是在每台独立的机器上运行一台工作服务器。 每个工作人员将根据其CPU利用率或队列可用性从队列中拉出。 应用程序本身会将项目添加到队列(可能由Redis处理)。 单个工作服务器与应用程序本身之间不会有直接的通信。 我能看到的一个问题是,如果多个工人同时占用相同的队列。 另一种方法是以某种方式与应用程序中的工作服务器进行通信,从而使工作人员获得最less的资源,并将作业“分配”给该特定的工作人员或将其排队。

有谁知道处理这个问题的好方法吗?

谢谢!

我推荐运行在Redis之上的kue。 它为您提供primefaces队列操作,每个工作人员可以从队列中获取下一个任务。 看看resque为一个更全面的版本的相同。