0

我的应用程序需要进行一些 CPU 密集型处理,所以我正在考虑将其作为后台工作。

我希望 express 应用程序和 kue 都在同一个盒子(不同的内核)上运行。我怎么做?主应用程序和作业队列如何相互通信?它们在同一个盒子上,所以发送一个 http 请求似乎很浪费。

4

1 回答 1

1

您可以手动启动多个 Node 进程(您的 Express 服务器和后台任务处理程序),也可以通过类似pm2or的进程管理器forever;或child_process.fork从您的 Express 应用程序中使用来启动一个新的 Node 进程,该进程将运行您的 CPU 密集型作业。

不能 100% 保证两者都将在不同的内核上运行,但是您可以让您的操作系统进行所有调度,并且它很可能会做正确的事情。

至于 Kue:它使用Redis作为中间人来存储作业。您的 Express 应用程序会向其发布工作,而您的后台任务将从中取出每个工作,对其进行处理,并可选择发回消息。

于 2013-11-20T06:58:44.993 回答