Replace timer-based _monitor_progress (1s sleep loop) with a ProgressReporter class that publishes on actual state changes, throttled to at most 1 publish per 250ms. A background flush every 2s keeps ETA/elapsed current during quiet periods. Switch WebSocket forwarder from get_message() polling (1s timeout) to async pubsub.listen() for instant Redis-to-WebSocket delivery. Combined latency improvement: ~1.5s average → ~250ms. |
||
|---|---|---|
| .. | ||
| listing_tasks.py | ||
| poi_tasks.py | ||
| task_state.py | ||