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 boolindiquant 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 boolindiquant 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 boolindiquant 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 boolindiquant 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 boolindiquant 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é Keyet 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 Clientcas()(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 Futurecontenant 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 Truesi ce contexte représente une transaction etFalsedans le cas contraire.
Méthodes statiques
- default_cache_policy(key)
- Vérifie l'existence d'une variable de classe _use_cachedans 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_datastoredans 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_memcachedans 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_timeoutdans la classe de modèle de l'entité. Si c'est le cas, cette variable de classe est renvoyée. Sinon, la fonction renvoieNone.