Files
PolyWeather/web/services/scan_terminal_config.py
2026-05-28 09:23:01 +08:00

44 lines
980 B
Python

"""Scan terminal configuration constants."""
from __future__ import annotations
import os
from typing import Optional
from src.utils.refresh_policy import SCAN_ROWS_REFRESH_SEC
def _env_int(
name: str,
default: int,
*,
min_value: int,
max_value: Optional[int] = None,
) -> int:
try:
value = int(os.getenv(name, str(default)))
except Exception:
value = int(default)
value = max(int(min_value), value)
if max_value is not None:
value = min(int(max_value), value)
return value
SCAN_TERMINAL_PAYLOAD_TTL_SEC = min(
SCAN_ROWS_REFRESH_SEC,
max(10, int(os.getenv("POLYWEATHER_SCAN_TERMINAL_PAYLOAD_TTL_SEC", str(SCAN_ROWS_REFRESH_SEC)))),
)
SCAN_TERMINAL_BUILD_TIMEOUT_SEC = _env_int(
"POLYWEATHER_SCAN_TERMINAL_BUILD_TIMEOUT_SEC",
30,
min_value=8,
max_value=30,
)
SCAN_TERMINAL_MAX_WORKERS = _env_int(
"POLYWEATHER_SCAN_TERMINAL_MAX_WORKERS",
8,
min_value=1,
max_value=12,
)