Controllo del database per aggiornamenti

0

Utilizzo di SQLite in un'applicazione WPF che pianifica eventi per le persone. L'applicazione verrà utilizzata da 2-4 utenti contemporaneamente. Mi chiedo come garantire che ogni utente abbia le informazioni più aggiornate sul database.

Quello che mi è venuto in mente è:

  1. Avvia un thread separato responsabile della verifica degli aggiornamenti del database.
  2. Utilizza l'impostazione dell'intervallo di tempo (ad esempio 30 secondi, 1 minuto, 2 minuti, 5 minuti, ecc.) per SELEZIONARE i dati.
  3. Carica tutti i dati e crea una nuova raccolta in memoria per il dominio.

Una volta che ho funzionato, allora posso usare cose come la colonna LastModifiedDataAndTime per tenere traccia di quando il database è stato modificato, quindi non sto interrogando gli stessi dati. Sembra terribilmente inefficiente creare (ricreare) una nuova collezione ogni 30s, 1 min, 5 min, ecc. Sto andando in questo modo corretto usando un thread separato per SELEZIONARE i dati di programmazione?

    
posta keelerjr12 22.01.2018 - 14:36
fonte

1 risposta

0

Ciò dipende in gran parte dall'interfaccia utente e dal modo in cui deve presentare i dati agli utenti. Se l'interfaccia utente presenta solo alcune piccole parti dei dati che vengono aggiornate ogni volta che un utente apre una nuova finestra o modifica una vista, potrebbe essere sufficiente controllare le modifiche del database solo nel contesto di un'operazione di aggiornamento, per rilevare potenziali collisioni da parte di due utenti cercando di cambiare contemporaneamente lo stesso record.

Se, tuttavia, i dati vengono visualizzati nell'interfaccia utente come una sorta di "newsticker", che deve essere aggiornato sullo schermo di volta in volta in background, con un thread separato per interrogare il database in intervalli di tempo regolari è una soluzione sensata.

Avere qualche data / ora memorizzata nel database in cui è possibile controllare rapidamente se potrebbero esserci alcune modifiche nel db (o nessuna modifica) è un'ottimizzazione standard, ma solo quando le modifiche avvengono in genere meno frequentemente degli intervalli di tempo pianificati per l'aggiornamento verifica.

    
risposta data 22.01.2018 - 16:53
fonte

Leggi altre domande sui tag