Refactor TrendingProjectsFinder to support caching
What does this MR do?
This refactors TrendingProjectsFinder
so it can support caching of the data. See cb7d3989 for more details.
Are there points in the code the reviewer needs to double check?
The usual.
Why was this MR needed?
Trending projects is quite slow, easily taking seconds to load the entire page.
Does this MR meet the acceptance criteria?
-
CHANGELOG entry added - Tests
-
Added for this feature/bug -
All builds are passing
-
-
Conform by the merge request performance guides -
Conform by the style guides -
Branch has no merge conflicts with master
(if you do - rebase it please) -
Squashed related commits together
What are the relevant issue numbers?
https://gitlab.com/gitlab-org/gitlab-ce/issues/22164
https://gitlab.com/gitlab-com/infrastructure/milestones/4, in particular the section "Trending page under 2s"