gallery_server_client_s190js/docs/scan_flow.md
2026-10-26 11:00:14 +01:00

102 lines
2.3 KiB
Markdown

FILE NUOVO
│
▼
WATCHER
│
▼
photo_ingest_jobs
│
▼
PHOTO DAEMON [I]
│
▼
runOneJob()
│
▼
scanPhotoSingle()
│
┌─────────┼─────────┐
│ │ │
▼ ▼ ▼
photos thumbnails geocode_jobs
│ │
│ ▼
│ GEOCODE DAEMON [G]
│
│
└─ SQLite trigger
│
▼
face_scan_jobs
│
▼
FACE DAEMON [F]
SCAN
│
▼
scanner foto
│
▼
scanFile.js
│
┌──────┴───────┐
│ │
▼ ▼
processFile() foto esistente?
│
▼
thumbnails
│
▼
photos DB
│
├──────────────► trigger SQLite
│ │
│ ▼
│ face_scan_jobs
│ │
│ ▼
│ FACE DAEMON
│
▼
photo_changes
added / updated
PHOTO DAEMON
│
│ foto salvata + thumbnail pronte
│ job = done
▼
enqueueServerEvent()
│
▼
server_event_outbox
│
│ consumer ogni ~250 ms
▼
SERVER [S]
│
▼
broadcastPhotoEvent(user, {
type: "added",
id: photoId
})
│
▼
WebSocket :4002
│
▼
Browser
│
▼
sync.js
│
▼
enqueueAdded(id)
│
▼
GALLERIA AGGIORNATA