如何控制并发数增长或者减少
说下需求,现在假设系统有一个任务列表,这个任务列表是不是固定的,有可能是0个也有可能是1000个, 任务列表按照循序执行,每次同时执行5个,5个任务执行完了,下一次,依然是5个, 一轮结束后,又从头开始执行任务,不断的循环执行。
但是问题来了, 第一,任务列表不是固定的,10点的时候是1000个,11点的时候就变成了1100个了 第二,任务执行过程中,有可能完成了,这个时候需要从任务列表中删除,这个时候就变成了900个了 现在就卡在问题二中。 谢谢了,如果还有描述不清楚的,我继续补充!
@FoghostCn 是的,我最初的方案也是用async,但是用了后,发现还是不行
async.mapLimit(confList, 5, function (conf, callback) {
async.whilst(isRun,function(cb) {
a(conf);
setTimeout(cb, 1 * 1000);
},function(err) {
logger.error("Not working time!");
}
);
}, function (err, result) {
logger.error('Error: ' + err);
});
confList是一个array,关键是我如何动态的控制confList