async.queue replaced to forEachLimit