refreshLinkRecommendations.php goes sequentially through wikis (or rather, the cronjob calling it via foreachwikiindblist does), within a wiki it goes sequentially through topics, and within a topic it goes sequentially through article candidates until enough are found. There are two problems with that:
- It cannot utilize available service capacity (with several instances and each having multiple workers, dozens of calls could be made in parallel without a performance penalty), which is a problem as the requests to the service are the bottleneck in the running speed of the script, and a significant one (preparing enough tasks for a new wiki would take several days now).
- When a new wiki is added, the script would only work on that wiki until it has enough tasks (days), potentially causing the task pool on other wikis to dry out.