@mytec: iter2.4 ready for testing

This commit is contained in:
2026-02-01 10:48:23 +02:00
parent 7893c57bc9
commit 5488633e43
19 changed files with 1448 additions and 69 deletions

View File

@@ -12,6 +12,7 @@ from app.services.coverage_service import (
apply_preset,
PRESETS,
)
from app.services.parallel_coverage_service import CancellationToken
router = APIRouter()
@@ -59,6 +60,7 @@ async def calculate_coverage(request: CoverageRequest) -> CoverageResponse:
# Time the calculation
start_time = time.time()
cancel_token = CancellationToken()
try:
# Calculate with 5-minute timeout
@@ -66,7 +68,8 @@ async def calculate_coverage(request: CoverageRequest) -> CoverageResponse:
points = await asyncio.wait_for(
coverage_service.calculate_coverage(
request.sites[0],
request.settings
request.settings,
cancel_token,
),
timeout=300.0
)
@@ -74,12 +77,17 @@ async def calculate_coverage(request: CoverageRequest) -> CoverageResponse:
points = await asyncio.wait_for(
coverage_service.calculate_multi_site_coverage(
request.sites,
request.settings
request.settings,
cancel_token,
),
timeout=300.0
)
except asyncio.TimeoutError:
cancel_token.cancel()
raise HTTPException(408, "Calculation timeout (5 min) — try smaller radius or lower resolution")
except asyncio.CancelledError:
cancel_token.cancel()
raise HTTPException(499, "Client disconnected")
computation_time = time.time() - start_time