- 主题:nodejs的http连接池问题
要通过request做n个keepalive链接并行访问某网站,总共的访问任务数为N,构成任务表
要求在某个request完成的同时就立刻从任务表里抽取一个任务,复用这个request,保持这个keepalive的链接
如此往复直至所有N个任务执行完毕
目前的做法是初始化时就生成N个request对象,和访问任务一一对应,让http的maxSockets控制并行数,这样做结果没问题,但是显然N太大时request对象消耗的内存太多了
大家有主意么?谢了
--
FROM 114.242.248.*
恩 我现在是这么做的
问题是我不希望一开始就生成一大堆请求,http内部实际都是进队列了
而我希望这个队列我维护,否则如果我潜在需要访问网站十万次,http内部的队列就会到这个数量,代价很大啊
【 在 zli07 (Anonymous) 的大作中提到: 】
: node的http模块的request方法,默认对于同host同port的请求就是自动keepalive的。
: 并发度的控制在agent上。通过修改http.globalAgent.maxSockets可以修改默认的每个host的连接数。
--
FROM 114.252.126.*
事实上8万请求耗费了9百多兆
【 在 zli07 (Anonymous) 的大作中提到: 】
: 请求没发出去,只是个队列里面的一个对象而已,不会消耗多少资源。十万个对象才多点内存呢,每个对象1k也才100m内存
--
FROM 114.252.126.*