When generating leaderboards, especially where there are a lot of users or a lot of transactions, the leaderboard query can become resource heavy. You would mainly see this in the form of the leaderboard page taking a long time to load.
To cut down on unnecessary queries, the plugin caches the leaderboard results. This is done by saving the raw leaderboard result as a group meta value. This also includes a users position in each leaderboard. Instead of running a new query on each page load, their position is saved and only re-queried when needed.
A groups leaderboard cache will be cleared automatically in the following situations:
- A user joins or leaves the group.
- A group member gains or loses points (depending on the leaderboard type used).
- The leaderboard plugin settings are saved.
- An admin saves the leaderboard setup in the group admin area.
- A custom point type that has previously been used for leaderboards is deleted.
There are a few scenarios where caching might cause some “issues”. If a leaderboard is based on a timeframe like today, this week or this month, the leaderboard cache will not be cleared at the end of each period. Instead it is cleared first when a member gains or loses points.
As an example, lets say we show todays point gains in our leaderboards and it is a new day. Throughout this new day, the leaderboard will show yesterdays results until someone in my group gains or loses points or any of the other above mentioned triggers occur.