NodeJS使用IO线程进行CPU工作

时间:2016-11-04 13:09:21

标签: node.js asynchronous parallel-processing

谷歌针对此问题的任何结果都是指向解释节点如何使用一个线程进行异步操作的指南。那不是我想要的。

假设我需要处理一个blob,处理它需要5分钟的CPU时间。

我不想阻止我的主线程,因为这个工人会变得没有反应。

我真的想要为执行处理工作的逻辑公开一个接口,并将其传递给其中一个IO线程,就像在fs.readFile中一样,并在处理完成时告知。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

Javascript / Nodejs是单线程的。 您的用例似乎适合消息队列系统。例如Rabbitmq

您基本上最终会得到工作服务(使用者)和任务排队器。 您的任务队列程序将向消息总线发送消息。消息总线将此消息转发给另一个服务。

我在github上发了一个非常简单的例子https://github.com/holoduke/nodejs_rabbitmq_simple_example