Add a limit to the leaderboard size
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user