Ho una vista Django, che riceve parte dei suoi dati da un sito web esterno, che analizzo usando urllib2/BeautifulSoup.Il caching di Django - può essere fatto in modo preventivo?
Questa operazione è piuttosto costoso quindi ho Cache utilizzando la cache API di basso livello, per ~ 5 minuti. Tuttavia, ogni utente che accede al sito dopo la scadenza dei dati nella cache riceverà un ritardo significativo di alcuni secondi mentre si visita il sito esterno per analizzare i nuovi dati.
C'è un modo per caricare i nuovi dati pigramente in modo che nessun utente possa mai ottenere quel tipo di ritardo? O è inevitabile?
Si prega di notare che io sono su un server di hosting condiviso, in modo da tenere a mente con le vostre risposte.
MODIFICA: grazie per l'aiuto finora. Tuttavia, non sono ancora sicuro di come ottengo ciò con lo script Python che chiamerò. Un test di base che ho fatto mostra che la cache di django non è globale. Significato se lo chiamo da uno script esterno, non vede i dati della cache in corso nel framework. Suggerimenti?
Un altro EDIT: che viene a pensarci, questo è probabilmente perché sto ancora utilizzando la cache di memoria locale. Ho il sospetto che se sposto la cache in memcached, DB, qualunque cosa, questo sarà risolto.
Non sono sicuro che intendi pigramente in questo contesto. La cache viene quasi sempre riempita pigramente - cioè, solo quando necessario. Penso che tu stia davvero parlando di analizzare il materiale da altri siti pigramente. –