Add a limit to the leaderboard size
continuous-integration/drone/push Build is passing Details

main
Clément FRÉVILLE 2 years ago
parent 274661171b
commit 63fb8de947

@ -4,6 +4,7 @@ use std::env;
use std::sync::Arc; use std::sync::Arc;
const LEADERBOARD: &str = "leaderboard"; const LEADERBOARD: &str = "leaderboard";
const LEADERBOARD_SIZE: isize = 10;
type LeaderboardEntry = (String, u32); type LeaderboardEntry = (String, u32);
#[async_trait] #[async_trait]
@ -37,7 +38,7 @@ impl Leaderboard for RedisLeaderboard {
let mut con = self.client.get_async_connection().await?; let mut con = self.client.get_async_connection().await?;
let count: isize = con.zcard(LEADERBOARD).await?; let count: isize = con.zcard(LEADERBOARD).await?;
let leaderboard: Vec<LeaderboardEntry> = let leaderboard: Vec<LeaderboardEntry> =
con.zrange_withscores(LEADERBOARD, 0, count - 1).await?; con.zrange_withscores(LEADERBOARD, 0, (count - 1).min(LEADERBOARD_SIZE)).await?;
Ok(leaderboard) Ok(leaderboard)
} }

Loading…
Cancel
Save