feat(extract): recheck every 30 min with 30-min window for accurate occupancy

Each slot is now rechecked once, at most 30 min before it starts.
Worst-case miss: a booking made 29 min before start.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Deeman
2026-02-25 09:39:30 +01:00
parent 5ba4cabcd8
commit d834bdc59a
2 changed files with 2 additions and 2 deletions

View File

@@ -45,7 +45,7 @@ AVAILABILITY_URL = "https://api.playtomic.io/v1/availability"
THROTTLE_SECONDS = 1 THROTTLE_SECONDS = 1
MAX_VENUES_PER_RUN = 20_000 MAX_VENUES_PER_RUN = 20_000
MAX_RETRIES_PER_VENUE = 2 MAX_RETRIES_PER_VENUE = 2
RECHECK_WINDOW_MINUTES = int(os.environ.get("RECHECK_WINDOW_MINUTES", "60")) RECHECK_WINDOW_MINUTES = int(os.environ.get("RECHECK_WINDOW_MINUTES", "30"))
CIRCUIT_BREAKER_THRESHOLD = int(os.environ.get("CIRCUIT_BREAKER_THRESHOLD") or "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 # Parallel mode submits futures in batches so the circuit breaker can stop

View File

@@ -29,5 +29,5 @@ depends_on = ["playtomic_tenants"]
[playtomic_recheck] [playtomic_recheck]
module = "padelnomics_extract.playtomic_availability" module = "padelnomics_extract.playtomic_availability"
entry = "main_recheck" entry = "main_recheck"
schedule = "0 6-23 * * *" schedule = "0,30 6-23 * * *"
depends_on = ["playtomic_availability"] depends_on = ["playtomic_availability"]