Questa potrebbe essere una domanda python. È un noobish per essere sicuro.django precarica e memorizza nella cache una vista
Un client richiede una pagina di calcolo [pagina-1] e alla fine richiederà una seconda pagina di calcolo [pagina-2], che può essere calcolata nell'istanza in cui è nota la richiesta per page-1. Non voglio calcolare ogni set di dati prima di servire pagina 1 perché rallenterebbe in modo significativo le prestazioni della risposta iniziale.
Desidero calcolare il valore per pagina-2 mentre il client legge pagina-1. Il client potrebbe anche fare clic su alcuni pulsanti che causano una risposta che fornisce una visualizzazione diversa dei dati della pagina 1, ma non richiedono un calcolo intensivo. Alla fine, ma non necessariamente immediatamente, il client chiederà la pagina 2 e voglio essere in grado di rispondere con una risposta pre-renderizzata.
Come posso fare?
che ci si vuole innescare una funzione asincrona che calcola la pagina 2 in base alle informazioni di pagina1, memorizzandola in una cache (o ovunque), quindi a pagina 2: esegue continuamente il polling di una vista che sa di verificare una determinata chiave nella cache in modo da determinare quando l'attività in background è terminata calcolo del task step2. –
Non ho idea di come farlo. Qualsiasi piccola guida sarebbe di grande aiuto. – Cole
Mi dispiace, non posso entrare in molti più dettagli senza scrivere un tema. Fondamentalmente, è necessario attivare questa funzione costosa non appena client1 leggere la pagina. Se non si desidera che il client lo attenda prima di caricare la pagina, è necessario eseguire il lavoro in modo asincrono. Un compito in background. Quindi, a pagina 2, è necessario considerare la possibilità che il lavoro in background NON sia ancora completato. Pertanto, la seconda pagina deve disporre di un meccanismo per eseguire il polling continuo del server fino al completamento dell'attività BG, a quel punto è possibile mostrare la pagina2 all'utente. –