外观
排行榜 · 技术实现
「玩家设定 →」
1. 代码位置
| 层 | 类 | 职责 |
|---|---|---|
| Controller | controller/RankingController(/api/rank) | 排行查询 |
| Service | service/RankingService | 排行计算与缓存 |
| Service | service/RankingScheduler | 定时刷新(战力快照) |
| domain | domain/RankType | 排行类型(战力等) |
| repository | repository/RankingRepository | 排行读写 |
2. 数据表
| 表 | 关键列 | 说明 |
|---|---|---|
player_rank_score | player_id、rank_type、score、snapshot_at | 排行分数(V48) |
3. 配置与常量
- yml 键(
emberfall.ranking.*):cache-ttl-seconds: 7200、score-refresh-batch-size: 25、score-refresh-ms: 300000(5 分钟刷新分数)、snapshot-refresh-ms: 1800000(30 分钟快照)
4. 数据流简述
RankingScheduler 按 score-refresh-ms 批量重算 player_rank_score(战力来源 player_attribute 派生),GET /api/rank 从 RankingRepository 读取排行,RankingService 以 cache-ttl-seconds 缓存结果,快照每 30 分钟落库。并行排行线:余烬试炼场烬塔排行(EmberTrialRankingService)、秘境评分排行(secret_realm_score)、世界 BOSS 日排行(world_boss_player_record)各自独立结算。
5. 已知差异
无
6. 相关代码
- 世界 BOSS(
WorldBossService:日伤害排名) - 余烬试炼场(
EmberTrialRankingService、player_trial_weekly_ranking_reward) - 肉鸽秘境(
SecretRealmScore:评分排行)