27 lines
775 B
Text
27 lines
775 B
Text
@startuml
|
|
actor User
|
|
participant "analytics_manager\n(balancer)" as Manager
|
|
participant "ANL Node\n(supervisor)" as Node
|
|
participant "Worker 1\n(camera 1)" as W1
|
|
participant "Worker 2\n(camera 2)" as W2
|
|
database MongoDB
|
|
|
|
User -> Manager: Enable fire_analytics for camera
|
|
Manager -> MongoDB: Find available ANL node
|
|
Manager -> Node: Assign camera to node
|
|
Node -> W1: spawn(mp.Process)
|
|
activate W1
|
|
W1 -> W1: Pull video stream
|
|
W1 -> W1: Process frames
|
|
W1 -> Manager: Send events via WebSocket
|
|
deactivate W1
|
|
|
|
Note over Node: Supervisor создает отдельный\nmultiprocessing воркер\nдля каждой камеры
|
|
|
|
Node -> Node: Check workers health
|
|
Node -> W2: spawn(mp.Process) for camera 2
|
|
activate W2
|
|
W2 -> W2: Process video stream
|
|
deactivate W2
|
|
|
|
@enduml
|