Une application peut utiliser un contexte pour contrôler sa stratégie de mise en cache.
La classe Context
propose également des API asynchrones pratiques pour utiliser les outils Memcache et URLFetch intégrés aux fonctions asynchrones de NDB. En particulier, l'API Memcache permet la mise en lots automatique.
- Méthodes d'instance pour la gestion de cache
- Méthodes d'instance pour Memcache et URLFetch
- Méthodes de gestion des transactions
- Méthodes statiques
Méthodes d'instance pour la gestion de cache
- clear_cache()
- Efface le cache contextuel.
- flush()
- Vide toutes les files d'attente de mise en lots automatique (envoie leurs tâches aux serveurs).
Le vidage se produit de manière asynchrone.
Renvoie un objet
Future
. Pour attendre la fin du vidage, appelez la méthodewait()
de cet objet. - get_cache_policy()
- Renvoie la fonction de stratégie de cache.
Cette fonction de stratégie prend en entrée une instance de clé Key et renvoie une valeur
bool
, indiquant si l'entité possédant cette clé doit être mise en cache dans le cache contextuel. Peut êtreNone
(ce qui signifie utiliserdefault_cache_policy
). - get_datastore_policy()
- Renvoie la fonction de stratégie Datastore du contexte actuel.
Cette fonction de stratégie utilise un argument d'instance Key et renvoie une valeur
bool
indiquant si elle doit utiliser le datastore. Peut êtreNone
(ce qui signifie utiliserdefault_datastore_policy
). - get_memcache_policy()
- Renvoie la fonction de stratégie Memcache actuelle.
Cette fonction de stratégie utilise un argument d'instance Key et renvoie une valeur
bool
indiquant si l'objet doit être mis en cache. Peut êtreNone
(ce qui signifie utiliserdefault_memcache_policy
). - get_memcache_timeout_policy()
- Renvoie la fonction de stratégie d'expiration de délai Memcache actuelle.
Cette fonction de stratégie prend en entrée une instance de clé Key et renvoie la valeur de délai Memcache souhaitée, exprimée en secondes. (Elle renvoie la valeur 0 si le délai d'expiration par défaut doit être utilisé.)
Peut être
None
, qui utilisedefault_memcache_timeout_policy
. - set_cache_policy(func)
- Définit la fonction de stratégie de cache.
Arguments
- func
- Cette fonction prend en entrée une instance de clé Key et renvoie une valeur
bool
indiquant si l'entité possédant cette clé doit être mise en cache dans le cache contextuel. Peut êtreNone
.
- set_datastore_policy(func)
- Définit la fonction de stratégie Datastore.
Arguments
- func
- Cette fonction prend en entrée une instance de clé Key et renvoie une valeur
bool
indiquant si l'entité possédant cette clé doit être stockée dans le datastore persistant. Peut êtreNone
.
- set_memcache_policy(func)
- Définit la fonction de stratégie Memcache.
Arguments
- func
- Cette fonction prend en entrée une instance de clé Key et renvoie une valeur
bool
indiquant si l'entité possédant cette clé doit être mise en cache dans le cache contextuel. Peut êtreNone
.
- set_memcache_timeout_policy(func)
- Définit la fonction de stratégie d'expiration de délai de Memcache.
Arguments
- func
- Cette fonction prend en entrée une instance de clé
Key
et renvoie la valeur de délai d'expiration Memcache souhaitée, exprimée en secondes. Elle renvoie la valeur 0 si le délai d'expiration par défaut doit être utilisé. Peut êtreNone
.
Méthodes d'instance pour Memcache et URLFetch
Vous pouvez accéder à la liste complète des méthodes dans la documentation de référence de l'API Memcache. La liste ci-dessous présente certaines des méthodes les plus couramment utilisées :
- memcache_add(key, value, time, namespace)
- Version asynchrone, avec mise en lots automatique, de la méthode Memcache
add()
. - memcache_cas(key, value, time, namespace)
- Version asynchrone, avec mise en lots automatique de la méthode Memcache
Client
cas()
(compare-and-swap). - memcache_decr(key, delta, initial_value, namespace)
- Version asynchrone, avec mise en lots automatique, de la méthode Memcache
decr()
. - memcache_delete(key, seconds, namespace)
- Version asynchrone, avec mise en lots automatique, de la méthode Memcache
delete()
. - memcache_get(key, namespace, use_cache)
- Version asynchrone, avec mise en lots automatique, de la méthode Memcache
get()
.Renvoie un objet
Future
contenant la valeur extraite de Memcache ou la valeurNone
. - memcache_gets(key, namespace, use_cache)
- Version asynchrone, avec mise en lots automatique, de la méthode Memcache
gets()
. - memcache_incr(key, delta, initial_value, namespace)
- Version asynchrone, avec mise en lots automatique, de la méthode Memcache
incr()
. - memcache_replace(key, value, time, namespace)
- Version asynchrone, avec mise en lots automatique, de la méthode Memcache
replace()
. - memcache_set(key, value, time, namespace, use_cache)
- Version asynchrone, avec mise en lots automatique, de la méthode Memcache
set()
. - urlfetch(url, payload, method, headers, allow_truncated, follow_redirects, validate_certificate, deadline, callback)
- Version asynchrone, avec mise en lots automatique, de la méthode URLFetch
fetch().
.
Méthodes de gestion des transactions
- call_on_commit(callback)
- Met en attente un rappel à invoquer en cas de validation de la transaction.
Si aucune transaction n'est en cours, le rappel est invoqué immédiatement.
Au cours d'une transaction, il est possible d'enregistrer plusieurs rappels, qui seront invoqués une fois la transaction validée, dans leur ordre d'enregistrement. Si la transaction échoue, les rappels ne seront pas invoqués.
Si un rappel génère une exception, celle-ci remonte normalement. Cela signifie que, si le rappel est invoqué immédiatement, toute exception déclenchée remonte immédiatement. Si l'invocation est différée jusqu'à la validation, les rappels restants seront ignorés et l'exception remontera à travers l'appel à
transaction()
. (Toutefois, à ce stade, la transaction est déjà validée.)Arguments
- rappel
- Fonction de rappel. Cette fonction de rappel ne prend aucun paramètre et ne renvoie rien.
- in_transaction()
- Renvoie
True
si ce contexte représente une transaction etFalse
dans le cas contraire.
Méthodes statiques
- default_cache_policy(key)
- Vérifie l'existence d'une variable de classe
_use_cache
dans la classe de modèle de l'entité. Si c'est le cas, cette variable de classe est renvoyée. Sinon, la fonction renvoieNone
. - default_datastore_policy(key)
- Vérifie l'existence d'une variable de classe
_use_datastore
dans la classe de modèle de l'entité. Si c'est le cas, cette variable de classe est renvoyée. Sinon, la fonction renvoieNone
. - default_memcache_policy(key)
- Vérifie l'existence d'une variable de classe
_use_memcache
dans la classe de modèle de l'entité. Si c'est le cas, cette variable de classe est renvoyée. Sinon, la fonction renvoieNone
. - default_memcache_timeout_policy(key)
- Vérifie l'existence d'une variable de classe
_memcache_timeout
dans la classe de modèle de l'entité. Si c'est le cas, cette variable de classe est renvoyée. Sinon, la fonction renvoieNone
.