Classe di contesto NDB

Un'applicazione può utilizzare un campo Contesto per controllare i propri criteri di memorizzazione nella cache. Context offre anche pratiche API asincrone per Memcache e il recupero URL, integrate nelle strutture asincrone di NDB. In particolare, l'API Memcache supporta il batch automatico.

Metodi di istanza di gestione della cache

clear_cache()
Cancella la cache contestuale.
flush()
Esegui il flush di tutte le code del batcher automatico (inviando il loro lavoro ai server). Lo svuotamento avviene in modo asincrono.

Restituisce un Future. Per attendere il completamento del flushing, chiama il metodo wait() di questo oggetto.

get_cache_policy()
Restituisci la funzione dei criteri della cache. Questa funzione del criterio prende un argomento di istanza Key e restituisce un bool che indica se l'entità con questa chiave deve essere memorizzata nella cache nella cache contestuale. Può essere None (ovvero, utilizza default_cache_policy).
get_datastore_policy()
Restituisce la funzione dei criteri Datastore corrente in contesto. Questa funzione del criterio prende un argomento dell'istanza Key e restituisce un bool che indica se deve utilizzare il Datastore. Può essere None (ovvero, utilizza default_datastore_policy).
get_memcache_policy()
Restituisci la funzione del criterio memcache attuale. Questa funzione del criterio prende un argomento dell'istanza Key e restituisce un bool che indica se deve essere memorizzato nella cache. Può essere None (ovvero, utilizza default_memcache_policy).
get_memcache_timeout_policy()
restituisce l'attuale funzione del criterio di timeout memcache. Questa funzione di criterio utilizza un argomento di istanza Key e restituisce il timeout memcache desiderato in secondi (oppure restituisce uno zero per utilizzare il timeout predefinito). Potrebbe essere None, che utilizza default_memcache_timeout_policy.
set_cache_policy(func)
Imposta la funzione dei criteri della cache.

Argomenti

func
Questa funzione utilizza un argomento dell'istanza Key e restituisce un bool che indica se l'entità con questa chiave deve essere memorizzata nella cache nella cache contestuale. Può essere None.
set_datastore_policy(func)
Imposta la funzione del criterio Datastore.

Argomenti

func
Questa funzione prende un argomento dell'istanza Key e restituisce un bool che indica se l'entità con questa chiave deve essere archiviata nel datastore permanente. Può essere None.
set_memcache_policy(func)
Imposta la funzione dei criteri memcache.

Argomenti

func
Questa funzione utilizza un argomento dell'istanza Key e restituisce un bool che indica se l'entità con questa chiave deve essere memorizzata nella cache nella cache contestuale. Può essere None.
set_memcache_timeout_policy(func)
Imposta la funzione del criterio di timeout memcache.

Argomenti

func
Questa funzione utilizza un argomento di istanza Key e restituisce il timeout memcache desiderato in secondi (oppure restituisce zero per utilizzare il timeout predefinito). Può essere None.

Metodi di istanza Memcache e Urlfetch

L'elenco completo dei metodi è disponibile nel riferimento dell'API Memcache. L'elenco seguente evidenzia alcuni dei metodi più utilizzati:

memcache_add(chiave, valore, tempo, spazio dei nomi)
Memcache in batch automatico asincrono add().
memcache_cas(chiave, valore, tempo, spazio dei nomi)
Memcache automatico in batch asincrono Client cas() (confronto e scambio).
memcache_decr(chiave, delta, valore_iniziale, spazio dei nomi)
Memcache in batch automatico asincrono decr().
memcache_delete(chiave, secondi, spazio dei nomi)
Memcache in batch automatico asincrono delete().
memcache_get(chiave, spazio dei nomi, use_cache)
Memcache in batch automatico asincrono get().

Restituisce un Future il cui valore restituito è il valore recuperato da memcache o None.

memcache_gets(chiave, spazio dei nomi, use_cache)
Memcache in batch automatico asincrono gets().
memcache_incr(chiave, delta, valore_iniziale, spazio dei nomi)
Memcache in batch automatico asincrono incr().
memcache_replace(chiave, valore, tempo, spazio dei nomi)
Memcache in batch automatico asincrono replace().
memcache_set(chiave, valore, tempo, spazio dei nomi, use_cache)
Memcache in batch automatico asincrono set().
urlfetch(url, payload, metodo, intestazioni, allow_truncated, follow_redirects, validate_certificate, scadenza, callback)
Recupero URL per il batch automatico asincrono fetch().

Metodi di gestione delle transazioni

call_on_commit(callback)
Metti in coda un callback per effettuare una chiamata in seguito al commit di una transazione.

Se non è in corso una transazione, il callback viene chiamato immediatamente.

In una transazione, è possibile registrare più callback che verranno richiamati una volta che la transazione viene eseguita nell'ordine in cui sono stati registrati. Se la transazione non va a buon fine, i callback non verranno chiamati.

Se un callback genera un'eccezione, le bolle vengono mostrate normalmente. Ciò significa che se il callback viene chiamato immediatamente, qualsiasi eccezione generata verrà visualizzata immediatamente. Se la chiamata viene posticipata fino al commit, i callback rimanenti verranno ignorati e l'eccezione verrà visualizzata durante la chiamata transaction(). Tuttavia, a quel punto la transazione è già stata impegnata.

Argomenti

richiamata
Funzione di callback. Questa funzione di callback non accetta parametri e non restituisce nulla.
in_transaction()
Restituisci True se questo contesto rappresenta una transazione, False altrimenti.

Metodi statici

default_cache_policy(chiave)
Verifica la presenza di una variabile di classe _use_cache nella classe del modello dell'entità; se presente, la restituisci. In caso contrario, restituisci None.
default_datastore_policy(chiave)
Verifica la presenza di una variabile di classe _use_datastore nella classe del modello dell'entità; se presente, la restituisci. In caso contrario, restituisci None.
default_memcache_policy(chiave)
Verifica la presenza di una variabile di classe _use_memcache nella classe del modello dell'entità; se presente, la restituisci. In caso contrario, restituisci None.
default_memcache_timeout_policy(key)
Verifica la presenza di una variabile di classe _memcache_timeout nella classe del modello dell'entità; se presente, la restituisci. In caso contrario, restituisci None.