Clase de contexto NDB

Una aplicación puede usar un Context para controlar su política de almacenamiento en caché. Context también ofrece APIs asíncronas prácticas para Memcache y URL Fetch integradas en las funciones asíncronas de NDB. En concreto, la API Memcache admite el procesamiento automático por lotes.

Métodos de instancia de gestión de caché

clear_cache()
Borra la caché contextual.
flush()
Vacía todas las colas de procesamiento por lotes automático (enviando su trabajo a los servidores). El vaciado se produce de forma asíncrona.

Devuelve un Future. Para esperar a que se complete el vaciado, llama al método wait() de este objeto.

get_cache_policy()
Devuelve la función de política de caché. Esta función de política toma un argumento de instancia Key y devuelve un bool que indica si la entidad con esta clave debe almacenarse en la caché en contexto. Puede ser None (es decir, usar default_cache_policy).
get_datastore_policy()
Devuelve la función de política del almacén de datos del contexto actual. Esta función de política toma un argumento de instancia Key y devuelve un bool que indica si debe usar Datastore. Puede ser None (es decir, usar default_datastore_policy).
get_memcache_policy()
Devuelve la función de política de caché de memoria actual. Esta función de política toma un argumento de instancia Key y devuelve un bool que indica si se debe almacenar en caché. Puede ser None (es decir, usar default_memcache_policy).
get_memcache_timeout_policy()
Devuelve la función de política de tiempo de espera de memcache actual. Esta función de política toma un argumento de instancia Key y devuelve el tiempo de espera de memcache deseado en segundos (o devuelve cero para usar el tiempo de espera predeterminado). Puede ser None, que usa default_memcache_timeout_policy.
set_cache_policy(func)
Define la función de política de caché.

Argumentos

func
Esta función toma un argumento de instancia Key y devuelve un bool que indica si la entidad con esta clave debe almacenarse en caché en la caché del contexto. Puede ser None.
set_datastore_policy(func)
Define la función de política de Datastore.

Argumentos

func
Esta función toma un argumento de instancia de Key y devuelve un bool que indica si la entidad con esta clave debe almacenarse en el almacén de datos persistente. Puede ser None.
set_memcache_policy(func)
Define la función de política de memcache.

Argumentos

func
Esta función toma un argumento de instancia Key y devuelve un bool que indica si la entidad con esta clave debe almacenarse en caché en la caché del contexto. Puede ser None.
set_memcache_timeout_policy(func)
Define la función de política de tiempo de espera de memcache.

Argumentos

func
Esta función toma un argumento de instancia Key y devuelve el tiempo de espera de la caché de memoria deseado en segundos (o devuelve cero para usar el tiempo de espera predeterminado). Puede ser None.

Métodos de instancia de Memcache y Urlfetch

La lista completa de métodos se encuentra en la referencia de la API de Memcache. En la lista que aparece más abajo se destacan algunos de los métodos más habituales:

memcache_add(clave, valor, tiempo, espacio_de_nombres)
Memoria caché asíncrona con creación automática de lotes add().
memcache_cas(key, value, time, namespace)
Memcache de creación de lotes automática asíncrona Client cas() (comparar e intercambiar).
memcache_decr(clave, delta, valor_inicial, espacio_de_nombres)
Memcache de creación de lotes automática asíncrona decr().
memcache_delete(clave, segundos, espacio_de_nombres)
Memcache de creación de lotes automática asíncrona delete().
memcache_get(clave, espacio_de_nombres, use_cache)
Memcache de creación de lotes automática asíncrona get().

Devuelve un Future cuyo valor devuelto es el valor recuperado de la memoria caché o None.

memcache_gets(clave, espacio_de_nombres, use_cache)
Memcache de creación de lotes automática asíncrona gets().
memcache_incr(clave, delta, valor_inicial, espacio_de_nombres)
Memcache de creación de lotes automática asíncrona incr().
memcache_replace(key, value, time, namespace)
Memcache de creación de lotes automática asíncrona replace().
memcache_set(key, value, time, namespace, use_cache)
Memcache de creación de lotes automática asíncrona set().
urlfetch(url, payload, method, headers, allow_truncated, follow_redirects, validate_certificate, deadline, callback)
URLFetch de envío automático asíncrono por lotes fetch().

Métodos de gestión de transacciones

call_on_commit(callback)
Pone en cola una retrollamada que se llamará cuando se confirme correctamente una transacción.

Si no está en una transacción, se llama a la retrollamada inmediatamente.

En una transacción, se pueden registrar varias retrollamadas, que se llamarán una vez que se confirme la transacción en el orden en el que se hayan registrado. Si la transacción falla, no se llamará a las retrollamadas.

Si una retrollamada genera una excepción, se propaga de forma normal. Esto significa que, si se llama a la retrollamada inmediatamente, cualquier excepción que genere se propagará inmediatamente. Si la llamada se pospone hasta que se confirme, se omitirán las devoluciones de llamada restantes y la excepción se propagará a través de la llamada transaction(). Sin embargo, la transacción ya se ha confirmado en ese momento.

Argumentos

devolución de llamada
Función de retrollamada. Esta función de retrollamada no usa ningún parámetro y no devuelve nada.
in_transaction()
Devuelve True si este contexto representa una transacción; de lo contrario, devuelve False.

Métodos estáticos

default_cache_policy(key)
Comprueba si hay una _use_cache variable de clase en la clase de modelo de la entidad. Si la hay, la devuelve. De lo contrario, devuelve None.
default_datastore_policy(key)
Comprueba si hay una variable de clase _use_datastore
en la clase de modelo de la entidad. Si la hay, la devuelve. De lo contrario, devuelve None.
default_memcache_policy(clave)
Comprueba si hay una _use_memcache variable de clase en la clase de modelo de la entidad. Si la hay, la devuelve. De lo contrario, devuelve None.
default_memcache_timeout_policy(key)
Comprueba si hay una _memcache_timeout variable de clase en la clase de modelo de la entidad. Si la hay, la devuelve. De lo contrario, devuelve None.