Skip to content

Commit

Permalink
releaseb only show db cached cutoff on the page
Browse files Browse the repository at this point in the history
  • Loading branch information
Sammers21 committed Apr 20, 2024
1 parent 997336d commit 6441dd4
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/io/github/sammers/pla/http/Http.java
Original file line number Diff line number Diff line change
Expand Up @@ -105,8 +105,8 @@ public void start() {
Integer rbgs = Optional.ofNullable(refs.diffsByBracket(RBG, region).get()).map(diff -> diff.chars().size()).orElse(0);
Integer shuffle = Optional.ofNullable(refs.diffsByBracket(SHUFFLE, region).get()).map(diff -> diff.chars().size()).orElse(0);
JsonObject res = new JsonObject().put("2v2", twos).put("3v3", threes).put("rbg", rbgs).put("shuffle", shuffle);
Cutoffs cutoffs = ladder.regionCutoff.get(region);
if (ladder.regionCutoff.get(region) != null) {
Cutoffs cutoffs = ladder.regionCutoffFromDb.get(region);
if (cutoffs != null) {
res.put("cutoffs", cutoffs.toJson());
}
ctx.response().end(res.encode());
Expand Down
19 changes: 19 additions & 0 deletions src/io/github/sammers/pla/logic/Ladder.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public class Ladder {
private final Map<String, AtomicReference<Meta>> meta = new ConcurrentHashMap<>();
private final NickNameSearchIndex charSearchIndex = new NickNameSearchIndex();
public final Map<String, Cutoffs> regionCutoff;
public final Map<String, Cutoffs> regionCutoffFromDb;
public final AtomicReference<Realms> realms = new AtomicReference<>(new Realms(new HashMap<>()));
public final CharUpdater charUpdater;
private final DB db;
Expand All @@ -60,6 +61,7 @@ public Ladder(WebClient web, DB db, BlizzardAPI blizzardAPI, CharacterCache char
this.characterCache = characterCache;
this.regionCutoff = regionCutoff;
this.charUpdater = new CharUpdater(blizzardAPI, characterCache, charsLoaded, refs, charSearchIndex, db);
this.regionCutoffFromDb = new ConcurrentHashMap<>();
}

@SuppressWarnings("unchecked")
Expand Down Expand Up @@ -110,6 +112,7 @@ private Observable<Long> runDataUpdater(String region, int timeout, TimeUnit tim
.andThen(battlegrounds(region).ignoreElement())
.andThen(shuffle(region).ignoreElement())
.andThen(updateCutoffs(region))
.andThen(loadCutoffsFromDb(region))
.andThen(calculateMulticlasserLeaderboard(region))
.andThen(calculateMeta(region))
.andThen(charUpdater.updateCharacters(region, 1, DAYS, timeout, timeoutUnits)).onErrorComplete(e -> {
Expand Down Expand Up @@ -149,11 +152,13 @@ public Completable updateRealms(String region) {

public Completable loadRegionData(String region) {
return loadCutoffs(region)
.andThen(loadCutoffsFromDb(region))
.andThen(loadLast(TWO_V_TWO, region))
.andThen(loadLast(THREE_V_THREE, region))
.andThen(loadLast(RBG, region))
.andThen(loadLast(SHUFFLE, region))
.andThen(updateCutoffs(region))
.andThen(loadCutoffsFromDb(region))
.andThen(calculateMeta(region))
.andThen(loadWowCharApiData(region))
.andThen(calculateMulticlasserLeaderboard(region));
Expand Down Expand Up @@ -506,6 +511,20 @@ private Completable loadCutoffs(String region) {
.onErrorComplete();
});
}
private Completable loadCutoffsFromDb(String region) {
return Completable.defer(() -> {
log.info("Load cutoffs from DB for region " + region);
return db.getLastCutoffs(realRegion(region)).map(cutoffs -> {
if (cutoffs.isPresent()) {
regionCutoffFromDb.put(oldRegion(region), cutoffs.get());
regionCutoffFromDb.put(realRegion(region), cutoffs.get());
}
return cutoffs;
}).doOnSuccess(cutoffs -> log.info("Cutoffs from DB for region={} has been loaded", region))
.ignoreElement()
.onErrorComplete();
});
}

private Completable updateCutoffs(String region) {
return Completable.defer(() -> {
Expand Down

0 comments on commit 6441dd4

Please sign in to comment.