feat(03-03): integrate UDPSender into FastAPI lifespan
- Import UDPSender in main.py - Start UDPSender on app boot, assign to app.state.udp_sender - Stop UDPSender cleanly on shutdown (before registry.save) - All existing lifespan behavior unchanged (beats, registry, show_store)
This commit is contained in:
@@ -7,6 +7,7 @@ from fastapi.staticfiles import StaticFiles
|
||||
|
||||
from lightsync.devices.registry import DeviceRegistry
|
||||
from lightsync.store.show_store import ShowStore
|
||||
from lightsync.protocol.udp_sender import UDPSender
|
||||
|
||||
# Module-level containers populated in lifespan
|
||||
registry: DeviceRegistry | None = None
|
||||
@@ -25,9 +26,15 @@ async def lifespan(app: FastAPI):
|
||||
# Beat analysis cache: filepath -> {"tempo": float, "beats": [float, ...]}
|
||||
app.state.beats = {}
|
||||
|
||||
# UDP sender for device communication (Phase 3)
|
||||
udp_sender = UDPSender()
|
||||
await udp_sender.start()
|
||||
app.state.udp_sender = udp_sender
|
||||
|
||||
yield
|
||||
|
||||
# Shutdown
|
||||
await app.state.udp_sender.stop()
|
||||
await registry.save()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user