migrazione verso gitea
This commit is contained in:
39
docs/flows/async_db_flow.md
Normal file
39
docs/flows/async_db_flow.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Infrastruttura Async / DB
|
||||
|
||||
## Scopo
|
||||
|
||||
Questo diagramma descrive il flusso comune usato da tutti i moduli GUI quando
|
||||
eseguono una query sul database.
|
||||
|
||||
## Flusso trasversale
|
||||
|
||||
```{mermaid}
|
||||
flowchart TD
|
||||
A["Evento UI (click / selezione / ricerca)"] --> B["Metodo finestra"]
|
||||
B --> C["AsyncRunner.run(awaitable)"]
|
||||
C --> D["Coroutines sul loop globale"]
|
||||
D --> E["AsyncMSSQLClient.query_json() / exec()"]
|
||||
E --> F["SQL Server"]
|
||||
F --> G["Risultato query"]
|
||||
G --> H["Future completata"]
|
||||
H --> I["Callback _ok / _err su thread Tk"]
|
||||
I --> J["Aggiornamento widget"]
|
||||
```
|
||||
|
||||
## Relazioni principali
|
||||
|
||||
```{mermaid}
|
||||
flowchart LR
|
||||
Main["main.py"] --> Loop["get_global_loop()"]
|
||||
Main --> DB["AsyncMSSQLClient"]
|
||||
Windows["Moduli GUI"] --> Runner["AsyncRunner"]
|
||||
Runner --> Loop
|
||||
Runner --> DB
|
||||
DB --> SQL["SQL Server Mediseawall"]
|
||||
```
|
||||
|
||||
## Note
|
||||
|
||||
- Il loop asincrono è condiviso tra tutte le finestre.
|
||||
- Il client DB è condiviso e creato una sola volta nel launcher.
|
||||
- I callback che aggiornano la UI rientrano sempre sul thread Tk.
|
||||
Reference in New Issue
Block a user