api: make items cache for longer
Some checks failed
Deploy API / docker (17, 3.8.5) (push) Failing after 30s
Some checks failed
Deploy API / docker (17, 3.8.5) (push) Failing after 30s
This commit is contained in:
parent
21b6de0f15
commit
1f1c55d41f
@ -34,8 +34,8 @@ public class ScoreSaberService {
|
|||||||
|
|
||||||
private final Map<String, ScoreSaberLeaderboardToken> leaderboardCache = ExpiringMap.builder()
|
private final Map<String, ScoreSaberLeaderboardToken> leaderboardCache = ExpiringMap.builder()
|
||||||
.maxSize(5_000)
|
.maxSize(5_000)
|
||||||
.expirationPolicy(ExpirationPolicy.CREATED)
|
.expirationPolicy(ExpirationPolicy.ACCESSED)
|
||||||
.expiration(30, TimeUnit.MINUTES)
|
.expiration(1, TimeUnit.DAYS)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -79,12 +79,12 @@ public class ScoreSaberService {
|
|||||||
* @throws BadRequestException if an error occurred while getting the leaderboard
|
* @throws BadRequestException if an error occurred while getting the leaderboard
|
||||||
*/
|
*/
|
||||||
public ScoreSaberLeaderboardToken getLeaderboard(String leaderboardId, boolean bypassCache) {
|
public ScoreSaberLeaderboardToken getLeaderboard(String leaderboardId, boolean bypassCache) {
|
||||||
if (leaderboardCache.containsKey(leaderboardId) && !bypassCache) { // The leaderboard is cached
|
if (leaderboardCache.containsKey(leaderboardId) && !bypassCache) { // The leaderboard is cached locally (very fast)
|
||||||
return leaderboardCache.get(leaderboardId);
|
return leaderboardCache.get(leaderboardId);
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<ScoreSaberLeaderboardToken> leaderboardOptional = leaderboardRepository.findById(leaderboardId);
|
Optional<ScoreSaberLeaderboardToken> leaderboardOptional = leaderboardRepository.findById(leaderboardId);
|
||||||
if (leaderboardOptional.isPresent() && !bypassCache) { // The leaderboard is cached
|
if (leaderboardOptional.isPresent() && !bypassCache) { // The leaderboard is cached in the database
|
||||||
ScoreSaberLeaderboardToken leaderboard = leaderboardOptional.get();
|
ScoreSaberLeaderboardToken leaderboard = leaderboardOptional.get();
|
||||||
leaderboardCache.put(leaderboardId, leaderboard);
|
leaderboardCache.put(leaderboardId, leaderboard);
|
||||||
return leaderboard;
|
return leaderboard;
|
||||||
|
@ -46,7 +46,7 @@ public class UserService {
|
|||||||
private final Map<String, User> userCache = ExpiringMap.builder()
|
private final Map<String, User> userCache = ExpiringMap.builder()
|
||||||
.maxSize(5_000)
|
.maxSize(5_000)
|
||||||
.expirationPolicy(ExpirationPolicy.ACCESSED)
|
.expirationPolicy(ExpirationPolicy.ACCESSED)
|
||||||
.expiration(1, TimeUnit.HOURS)
|
.expiration(1, TimeUnit.DAYS)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
Reference in New Issue
Block a user