We could make the number of apps fetched at a time configurable, and manage it with a ThreadPoolExecutor.

That way users can control how many are updated at a time based on their own connection if it's a problem.