Classe NDB Context

Un'applicazione può utilizzare un contesto per controllare il criterio di memorizzazione nella cache. Context offre anche comode API asincrone per Memcache e URL Fetch integrate nelle funzionalità asincrone di NDB; in particolare, l'API Memcache supporta il batching automatico.

Metodi di istanza per la gestione della cache

clear_cache()
Svuota la cache in-context.
flush()
Svuota tutte le code del batcher automatico (inviando il lavoro ai server). Lo svuotamento avviene in modo asincrono.

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

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

Argomenti

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

Argomenti

func
Questa funzione accetta un argomento istanza Key e restituisce un bool che indica se l'entità con questa chiave deve essere archiviata in Datastore persistente. Può essere None.
set_memcache_policy(func)
Imposta la funzione del criterio memcache.

Argomenti

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

Argomenti

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

Metodi di istanza Memcache e Urlfetch

L'elenco completo dei metodi è disponibile nel riferimento all'API Memcache. L'elenco riportato di seguito mette in evidenza alcuni dei metodi più utilizzati:

memcache_add(key, value, time, namespace)
Memcache con batch automatico asincrono add().
memcache_cas(chiave, valore, ora, spazio_nomi)
Memcache con raggruppamento automatico asincrono Client cas() (confronta e sostituisci).
memcache_decr(key, delta, initial_value, namespace)
Memcache con batch automatico asincrono decr().
memcache_delete(key, seconds, namespace)
Memcache con batch automatico asincrono delete().
memcache_get(key, namespace, use_cache)
Memcache con batch automatico asincrono get().

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

memcache_gets(key, namespace, use_cache)
Memcache con batch automatico asincrono gets().
memcache_incr(key, delta, initial_value, namespace)
Memcache con batch automatico asincrono incr().
memcache_replace(key, value, time, namespace)
Memcache con batch automatico asincrono replace().
memcache_set(key, value, time, namespace, use_cache)
Memcache con batch automatico asincrono set().
urlfetch(url, payload, method, headers, allow_truncated, follow_redirects, validate_certificate, deadline, callback)
urlfetch con raggruppamento automatico asincrono fetch().

Metodi di gestione delle transazioni

call_on_commit(callback)
Mete in coda un callback da chiamare al termine dell'commit di una transazione.

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

In una transazione è possibile registrare più callback, che verranno chiamati al momento dell'commit della transazione nell'ordine in cui sono stati registrati. Se la transazione non va a buon fine, i callback non verranno richiamati.

Se un callback genera un'eccezione, viene visualizzato 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à passata alla chiamata transaction(). Tuttavia, a quel punto la transazione è già stata eseguita.

Argomenti

callback
Funzione di callback. Questa funzione di callback non accetta parametri e non restituisce nulla.
in_transaction()
Restituisce True se questo contesto rappresenta una transazione, False in caso contrario.

Metodi statici

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