diff --git a/extract/padelnomics_extract/src/padelnomics_extract/playtomic_availability.py b/extract/padelnomics_extract/src/padelnomics_extract/playtomic_availability.py index cb1e41c..6372191 100644 --- a/extract/padelnomics_extract/src/padelnomics_extract/playtomic_availability.py +++ b/extract/padelnomics_extract/src/padelnomics_extract/playtomic_availability.py @@ -42,7 +42,7 @@ MAX_VENUES_PER_RUN = 20_000 MAX_RETRIES_PER_VENUE = 2 MAX_WORKERS = int(os.environ.get("EXTRACT_WORKERS", "1")) RECHECK_WINDOW_MINUTES = int(os.environ.get("RECHECK_WINDOW_MINUTES", "90")) -CIRCUIT_BREAKER_THRESHOLD = int(os.environ.get("CIRCUIT_BREAKER_THRESHOLD", "10")) +CIRCUIT_BREAKER_THRESHOLD = int(os.environ.get("CIRCUIT_BREAKER_THRESHOLD") or "10") # Parallel mode submits futures in batches so the circuit breaker can stop # new submissions after it opens. Already-inflight futures in the current diff --git a/src/padelnomics/export_serving.py b/src/padelnomics/export_serving.py index 03d9384..9d79df6 100644 --- a/src/padelnomics/export_serving.py +++ b/src/padelnomics/export_serving.py @@ -26,6 +26,7 @@ Usage: import logging import os +import re import duckdb @@ -60,7 +61,6 @@ def export_serving() -> None: for view_name, view_sql in view_rows: # Pattern: ... FROM "local".sqlmesh__serving.serving__name__hash; # Strip the "local". prefix to get schema.table - import re match = re.search(r'FROM\s+"local"\.(sqlmesh__serving\.\S+)', view_sql) assert match, f"Cannot parse view definition for {view_name}: {view_sql[:200]}" physical_tables.append((view_name, match.group(1))) diff --git a/web/src/padelnomics/sitemap.py b/web/src/padelnomics/sitemap.py index 02e5010..6103093 100644 --- a/web/src/padelnomics/sitemap.py +++ b/web/src/padelnomics/sitemap.py @@ -6,6 +6,9 @@ from quart import Response from .core import fetch_all +# Process-local cache — valid for the current single-Hypercorn-worker deployment +# (Dockerfile: `--workers 1`). If worker count increases, replace with a +# DB-backed cache (e.g. a single-row SQLite table with an expires_at column). _cache_xml: str = "" _cache_timestamp: float = 0.0 CACHE_TTL_SECONDS: int = 3600 # 1 hour