使用async流程控制库在什么情况下需要限制并发量? 并发数(limit参数)通常根据什么来定?
async.eachLimit = function (arr, limit, iterator, callback) { var fn = _eachLimit(limit); fn.apply(null, [arr, iterator, callback]); }; async.forEachLimit = async.eachLimit; var _eachLimit = function (limit) { return function (arr, iterator, callback) { callback = callback || function () {}; if (!arr.length || limit <= 0) { return callback(); } var completed = 0; var started = 0; var running = 0; (function replenish () { if (completed >= arr.length) { return callback(); } while (running < limit && started < arr.length) { started += 1; running += 1; iterator(arr[started - 1], function (err) { if (err) { callback(err); callback = function () {}; } else { completed += 1; running -= 1; if (completed >= arr.length) { callback(); } else { replenish(); } } }); } })(); }; }; ```
@i5ting 多谢,但这个好像不是我想要的答案。。
node-lesson第五集貌似有讲这个 《使用 async 控制并发》
@luoyjx 这个我之前也看过,但也只是在抓包情况下,这个可以参考服务器最大连接数和请求频率,但是其它异步情形呢?比如数据库读写,文件读写等。
@wmzy 额,那倒还没涉及过相关的,帮不到你了:P
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
@i5ting 多谢,但这个好像不是我想要的答案。。
node-lesson第五集貌似有讲这个 《使用 async 控制并发》
@luoyjx 这个我之前也看过,但也只是在抓包情况下,这个可以参考服务器最大连接数和请求频率,但是其它异步情形呢?比如数据库读写,文件读写等。
@wmzy 额,那倒还没涉及过相关的,帮不到你了:P