Classe de contexto NDB

Uma aplicação pode usar um Context para controlar a respetiva política de colocação em cache. Context também oferece APIs assíncronas convenientes para Memcache e obtenção de URLs integrados nas funcionalidades assíncronas do NDB; em particular, a API Memcache suporta o processamento em lote automático.

Métodos de instância de gestão de cache

clear_cache()
Limpa a cache no contexto.
flush()
Limpar todas as filas do processador de lotes automático (enviando o respetivo trabalho para os servidores). A descarga ocorre de forma assíncrona.

Devolve um Future. Para aguardar a conclusão da descarga, chame o método wait() deste objeto.

get_cache_policy()
Devolve a função da política de cache. Esta função de política usa um argumento de instância Key e devolve um bool que indica se a entidade com esta chave deve ser colocada em cache na cache no contexto. Pode ser None (o que significa usar default_cache_policy).
get_datastore_policy()
Devolve a função da política da base de dados atual do contexto. Esta função de política seleciona um argumento de instância Key e devolve um bool que indica se deve usar o Datastore. Pode ser None (o que significa usar default_datastore_policy).
get_memcache_policy()
Devolve a função da política de memcache atual. Esta função de política usa um argumento de instância Key e devolve um bool que indica se deve ser colocado em cache. Pode ser None (o que significa usar default_memcache_policy).
get_memcache_timeout_policy()
Devolve a função da política de tempo limite da cache de memória atual. Esta função de política usa um argumento de instância Key e devolve o limite de tempo da cache de memória pretendido em segundos (ou devolve zero para usar o limite de tempo predefinido). Pode ser None, que usa default_memcache_timeout_policy.
set_cache_policy(func)
Define a função da política de cache.

Argumentos

func
Esta função recebe um argumento de instância de Key e devolve um bool que indica se a entidade com esta chave deve ser colocada em cache na cache no contexto. Pode ser None.
set_datastore_policy(func)
Define a função da política do Datastore.

Argumentos

func
Esta função recebe um argumento de instância de Key e devolve um bool que indica se a entidade com esta chave deve ser armazenada no Datastore persistente. Pode ser None.
set_memcache_policy(func)
Define a função da política de memcache.

Argumentos

func
Esta função recebe um argumento de instância de Key e devolve um bool que indica se a entidade com esta chave deve ser colocada em cache na cache no contexto. Pode ser None.
set_memcache_timeout_policy(func)
Define a função de política de tempo limite da memcache.

Argumentos

func
Esta função seleciona um argumento de instância e devolve o limite de tempo da cache de memória pretendido em segundos (ou devolve zero para usar o limite de tempo predefinido).Key Pode ser None.

Métodos de instância do Memcache e Urlfetch

Pode encontrar a lista completa de métodos na referência da API Memcache. A lista abaixo realça alguns dos métodos usados com mais frequência:

memcache_add(key, value, time, namespace)
Memcache de processamento em lote automático assíncrono add().
memcache_cas(key, value, time, namespace)
Cache de memória de processamento em lote automático assíncrono Client cas() (comparar e trocar).
memcache_decr(key, delta, initial_value, namespace)
Memcache de processamento em lote automático assíncrono decr().
memcache_delete(key, seconds, namespace)
Memcache de processamento em lote automático assíncrono delete().
memcache_get(key, namespace, use_cache)
Memcache de processamento em lote automático assíncrono get().

Devolve um Future cujo valor devolvido é o valor obtido a partir da cache de memória ou None.

memcache_gets(key, namespace, use_cache)
Memcache de processamento em lote automático assíncrono gets().
memcache_incr(key, delta, initial_value, namespace)
Memcache de processamento em lote automático assíncrono incr().
memcache_replace(key, value, time, namespace)
Memcache de processamento em lote automático assíncrono replace().
memcache_set(key, value, time, namespace, use_cache)
Memcache de processamento em lote automático assíncrono set().
urlfetch(url, payload, method, headers, allow_truncated, follow_redirects, validate_certificate, deadline, callback)
URLfetch de processamento em lote automático assíncrono fetch().

Métodos de gestão de transações

call_on_commit(callback)
Coloca em fila uma chamada de retorno para chamar após a confirmação bem-sucedida de uma transação.

Se não estiver numa transação, a chamada de retorno é feita imediatamente.

Numa transação, podem ser registadas várias chamadas de retorno, que são chamadas assim que a transação for confirmada, pela ordem em que foram registadas. Se a transação falhar, as chamadas de retorno não são chamadas.

Se um callback gerar uma exceção, esta é apresentada normalmente. Isto significa que, se a função de retorno de chamada for chamada imediatamente, qualquer exceção que gerar é apresentada imediatamente. Se a chamada for adiada até à confirmação, as restantes chamadas de retorno são ignoradas e a exceção é apresentada através da chamada transaction(). (No entanto, a transação já está confirmada nesse momento.)

Argumentos

callback
Função de chamada de retorno. Esta função de chamada de retorno não usa parâmetros e não devolve nada.
in_transaction()
Devolve True se este Contexto representar uma transação. Caso contrário, devolve False.

Métodos estáticos

default_cache_policy(key)
Verifica se existe uma variável de classe na classe do modelo da entidade. Se existir, devolve-a._use_cache Caso contrário, devolva None.
default_datastore_policy(key)
Verifica se existe uma variável de classe na classe do modelo da entidade. Se existir, devolve-a._use_datastore Caso contrário, devolva None.
default_memcache_policy(key)
Verifica se existe uma variável de classe na classe do modelo da entidade. Se existir, devolve-a._use_memcache Caso contrário, devolva None.
default_memcache_timeout_policy(key)
Verifica se existe uma variável de classe na classe do modelo da entidade. Se existir, devolve-a._memcache_timeout Caso contrário, devolva None.