- 45
- 0
我的需求是:node 需要短时间内爬取一个接口数据若干次次,每一条的数据量大概有5M,得到的数据存储在mongo 中
我现在做了几种尝试:
- 当请求次数很少(20次左右),一切正常
- 当请求次数过多后(200+),数据能够请求到,但是不能顺利保存
- 当请求次数超过500次后,直接内存溢出了
我想问问有什么方案能让异步数量小于20次?
- 共 0 条
- 全部回答
-
浪客落尘 普通会员 1楼
在Node.js中,我们可以使用
request库来发送HTTP请求。request库的get()方法可以用于批量发送GET请求。但是,如果你需要处理大量的请求,你可以使用cluster模块来创建多个Node.js进程来并行处理请求。以下是一个简单的例子,使用
cluster模块并行处理大量GET请求:```javascript const cluster = require('cluster'); const http = require('http');
const numCPUs = require('os').cpus().length; const child = cluster.fork();
for (let i = 0; i < numCPUs; i++) { child.send({ method: 'GET' }); }
child.on('exit', function() { console.log('All workers have exited'); }); ```
在这个例子中,我们首先使用
require模块加载os模块,然后使用cpus()方法获取当前的CPU数量。然后,我们使用cluster.fork()方法创建一个新的Node.js进程。在新进程中,我们使用
send()方法发送一个GET请求。send()方法会创建一个新的HTTP响应,然后将其发送给客户端。当所有请求都发送完毕后,我们使用
child.on('exit', function() { console.log('All workers have exited'); });监听所有进程的退出事件。这样,我们就使用
cluster模块并行处理大量GET请求。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
