Throttle elo rebuilds on rcon cycles

This commit is contained in:
devRaGonSa
2026-03-26 13:40:59 +01:00
parent 39acd84b61
commit 2d40aa567f
4 changed files with 192 additions and 14 deletions

View File

@@ -24,6 +24,8 @@ DEFAULT_HISTORICAL_SNAPSHOT_REFRESH_INTERVAL_SECONDS = 900
DEFAULT_HISTORICAL_REFRESH_MAX_RETRIES = 2
DEFAULT_HISTORICAL_REFRESH_RETRY_DELAY_SECONDS = 30
DEFAULT_HISTORICAL_FULL_SNAPSHOT_EVERY_RUNS = 4
DEFAULT_HISTORICAL_ELO_MMR_REBUILD_INTERVAL_MINUTES = 1440
DEFAULT_HISTORICAL_ELO_MMR_MIN_NEW_SAMPLES = 12
DEFAULT_HISTORICAL_WEEKLY_FALLBACK_MIN_MATCHES = 3
DEFAULT_HISTORICAL_WEEKLY_FALLBACK_MAX_WEEKDAY = 2
DEFAULT_PLAYER_EVENT_REFRESH_INTERVAL_SECONDS = 1800
@@ -318,6 +320,30 @@ def get_historical_full_snapshot_every_runs() -> int:
return run_count
def get_historical_elo_mmr_rebuild_interval_minutes() -> int:
"""Return the minimum minutes between automatic Elo/MMR rebuilds."""
configured_value = os.getenv(
"HLL_HISTORICAL_ELO_MMR_REBUILD_INTERVAL_MINUTES",
str(DEFAULT_HISTORICAL_ELO_MMR_REBUILD_INTERVAL_MINUTES),
)
interval_minutes = int(configured_value)
if interval_minutes <= 0:
raise ValueError("HLL_HISTORICAL_ELO_MMR_REBUILD_INTERVAL_MINUTES must be positive.")
return interval_minutes
def get_historical_elo_mmr_min_new_samples() -> int:
"""Return the minimum new RCON samples required for an automatic Elo/MMR rebuild."""
configured_value = os.getenv(
"HLL_HISTORICAL_ELO_MMR_MIN_NEW_SAMPLES",
str(DEFAULT_HISTORICAL_ELO_MMR_MIN_NEW_SAMPLES),
)
min_samples = int(configured_value)
if min_samples <= 0:
raise ValueError("HLL_HISTORICAL_ELO_MMR_MIN_NEW_SAMPLES must be positive.")
return min_samples
def get_historical_weekly_fallback_min_matches() -> int:
"""Return the minimum closed matches required to trust the current week."""
configured_value = os.getenv(