我的应用程序需要进行一些cpu密集处理,所以我正在考虑将其作为后台工作。
我希望快递app和kue都在同一个盒子(不同的核心)上运行。我怎么做?主应用程序和作业队列如何相互通信?它们在同一个盒子上,因此发送http请求似乎非常浪费。
答案 0 :(得分:1)
您可以手动启动多个Node流程(Express服务器和后台任务处理程序),也可以通过pm2
或forever
等流程管理器启动;或者使用Express应用程序中的child_process.fork
启动一个新的节点进程,该进程将运行CPU密集型作业。
并非100%保证两者都可以在不同的内核上运行,但您可以让您的操作系统完成所有这些安排,并且很可能会做正确的事情。
至于Kue:它使用Redis作为存储工作的中间人。您的Express应用程序将作业发布到它,您的后台任务将从中删除每个作业,处理它,并可选择发回消息。