【发布时间】:2015-08-22 20:59:21
【问题描述】:
Async 库具有 eachLimit 之类的函数,可用于在多个 CPU 内核上高效地分发大量作业,如下所示:
var numCPUs = require('os').cpus().length;
var exec = require('child_process').exec;
async.eachLimit(someArray, numCPUs, function (value, done) {
exec('something --input' + value, done);
}, finalCallback);
这避免了一次使用太多命令使系统过载,但仍会利用多个 CPU。
我想做同样的事情,但使用 Promises。
在Bluebird API 中,我看不到任何明显的方法可以像使用异步一样以如此简洁、富有表现力的方式进行这种批处理。
有没有用 Bluebird(或一般的 Promises)做这件事的好模式?或者我可以为此使用的任何其他实用程序库?
【问题讨论】:
标签: javascript node.js asynchronous promise bluebird