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é
- Métodos de instancia de Memcache y Urlfetch
- Métodos de gestión de transacciones
- Métodos estáticos
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étodowait()
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 serNone
(es decir, usardefault_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 serNone
(es decir, usardefault_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 serNone
(es decir, usardefault_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 usadefault_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 serNone
.
- 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 serNone
.
- 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 serNone
.
- 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 serNone
.
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é oNone
. - 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, devuelveFalse
.
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, devuelveNone
. - 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
. - en la clase de modelo de la entidad. Si la hay, la devuelve. De lo contrario, devuelve
- 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, devuelveNone
. - 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, devuelveNone
.