Classe de contexte NDB

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

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éthode wait() 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 être None (ce qui signifie utiliser default_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 être None (ce qui signifie utiliser default_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 être None (ce qui signifie utiliser default_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 utilise default_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 être None.
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 être None.
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 être None.
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 être None.

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 valeur None.

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 et False 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 renvoie None.
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 renvoie None.
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 renvoie None.
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 renvoie None.