Reduce task polling frequency and raise rate limits to prevent 429s
With 8+ active tasks, polling every 5s generates ~96 task_status requests/min, exceeding the 60/60s rate limit. Two fixes: - Adaptive polling: 30s when WebSocket is connected (safety net), 5s only when WebSocket is down (primary source) - Raise task_status rate limit to 200/60s and tasks_for_user to 60/60s to handle burst scenarios (page reloads, WS reconnects)
This commit is contained in:
parent
791b5a9d55
commit
3616e678ac
2 changed files with 21 additions and 10 deletions
|
|
@ -27,8 +27,8 @@ class RateLimitConfig:
|
|||
"/api/listing_geojson": EndpointLimit(10, 60),
|
||||
"/api/listing_geojson/stream": EndpointLimit(10, 60),
|
||||
"/api/refresh_listings": EndpointLimit(3, 300),
|
||||
"/api/task_status": EndpointLimit(60, 60),
|
||||
"/api/tasks_for_user": EndpointLimit(30, 60),
|
||||
"/api/task_status": EndpointLimit(200, 60),
|
||||
"/api/tasks_for_user": EndpointLimit(60, 60),
|
||||
"/api/cancel_task": EndpointLimit(10, 60),
|
||||
"/api/clear_all_tasks": EndpointLimit(5, 60),
|
||||
"/api/get_districts": EndpointLimit(20, 60),
|
||||
|
|
@ -87,8 +87,8 @@ class RateLimitConfig:
|
|||
"/api/listing_geojson": _parse_limit("RATE_LIMIT_GEOJSON", 10, 60),
|
||||
"/api/listing_geojson/stream": _parse_limit("RATE_LIMIT_GEOJSON_STREAM", 10, 60),
|
||||
"/api/refresh_listings": _parse_limit("RATE_LIMIT_REFRESH", 3, 300),
|
||||
"/api/task_status": _parse_limit("RATE_LIMIT_TASK_STATUS", 60, 60),
|
||||
"/api/tasks_for_user": _parse_limit("RATE_LIMIT_TASKS_FOR_USER", 30, 60),
|
||||
"/api/task_status": _parse_limit("RATE_LIMIT_TASK_STATUS", 200, 60),
|
||||
"/api/tasks_for_user": _parse_limit("RATE_LIMIT_TASKS_FOR_USER", 60, 60),
|
||||
"/api/cancel_task": _parse_limit("RATE_LIMIT_CANCEL_TASK", 10, 60),
|
||||
"/api/clear_all_tasks": _parse_limit("RATE_LIMIT_CLEAR_TASKS", 5, 60),
|
||||
"/api/get_districts": _parse_limit("RATE_LIMIT_DISTRICTS", 20, 60),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue