2014-06-18 8 views
5

Ho un'applicazione che visualizza i contenuti di un database che viene aggiornato ogni 5-10 minuti. Il caricamento di tutti i dati nel database richiede circa 5 minuti. Invece di ricaricare tutti i dati nel database con ogni aggiornamento, vorrei caricare solo nuove righe o campi di righe che sono stati aggiornati.In attesa di un aggiornamento di riga o l'inserimento di righe con sqlalchemy

  1. È possibile verificare la presenza di campi modificati o nuovi con sqlalchemy (per eseguire il polling delle modifiche)?
  2. È possibile attendere i campi modificati o nuovi con sqlalchemy (con una chiamata di funzione di blocco)?

Il database è un database postgres, se questo è importante.

risposta

2

ProstgeSQL dispone di un meccanismo NOTIFY/LISTEN che può essere utilizzato con i trigger per inviare notifiche di inserimento, eliminazione e aggiornamento. La notifica include un argomento come la tabella e l'azione.

Non sembra che SQLAlchemy supporti questa funzionalità, probabilmente poiché non è lo standard SQL ma Postgres specifico.

Ecco un esempio di controllo per le modifiche in un database prostgres con NOTIFICA/ASCOLTA utilizzando python e contorto http://www.divillo.com/

di responsabilità, ho appena velature attraverso la documentazione di SQLAlchemy e Postgres. Più googling su NOTIFY in postgres e python potrebbe fornire più aiuto.

Problemi correlati