Web分析器使用多个线程

时间:2016-03-29 19:08:40

标签: node.js multithreading

我想使用node.js构建一个Web解析器。

我知道使用多线程不会自动获得性能优势,但由于此解析器正在与Internet进行交互,因此存在连接延迟。

当解析器请求一个网站时,如果不是更长时间,CPU只需要等待请求完成就需要几百毫秒。 对于单个线程,这意味着它在大多数时间都在等待。

我想使用线程来更好地分配可用的CPU资源。

我想运行几个执行请求的工作程序以及其他一些方法。

我发现群集模块可能很有用,但我不确定这一点,因为大多数示例都将其用作网络服务器。

使用node.js如何最好地实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以使用Async NPM来使用一个核心的所有功能,然后使用某些clustering solution进行缩放以使用所有核心。

答案 1 :(得分:1)

就像@ roman-dibikhin回答一样,检查Async queue模块。

如果您正确构建代码 - 在单核之前,限制将是您的网络带宽\ sql \ disk。

我刚看到一个使用节点进行网址报废的项目。限制只是互联网带宽。

当然,如果你想要,你总是可以发射另一个实例。