NDB-Klasse "Context"

Eine Anwendung kann einen Kontext verwenden, um ihre Caching-Richtlinie zu steuern. Context bietet auch praktische asynchrone APIs für Memcache und URL Fetch, die in die asynchronen Funktionen von NDB integriert sind; insbesondere unterstützt die Memcache API automatische Batchverarbeitung.

Instanzmethoden zur Cache-Verwaltung

clear_cache()
Löscht den Kontext-Cache.
flush()
Leert alle Warteschlangen für automatische Batchverarbeitung (und überträgt ihre Arbeit an die Server). Das Leeren erfolgt asynchron.

Gibt Future zurück. Um zu warten, bis das Leeren abgeschlossen ist, rufen Sie die Methode wait() dieses Objekts auf.

get_cache_policy()
Liefert die Cache-Richtlinienfunktion. Diese Richtlinienfunktion verwendet ein Key-Instanzargument und gibt einen bool-Wert zurück, der angibt, ob die Entität mit diesem Schlüssel im Kontext-Cache zwischengespeichert werden soll. Kann None sein (d. h. default_cache_policy wird verwendet).
get_datastore_policy()
Liefert die aktuelle Datenspeicher-Richtlinienfunktion für den Kontext. Diese Richtlinienfunktion verwendet ein Key-Instanzargument und gibt einen bool-Wert zurück, der angibt, ob es den Datenspeicher verwenden soll. Kann None sein (d. h. default_datastore_policy wird verwendet).
get_memcache_policy()
Liefert die aktuelle Richtlinienfunktion für den Memcache. Diese Richtlinienfunktion verwendet ein Key-Instanzargument und gibt einen bool-Wert zurück, der angibt, ob es im Cache gespeichert werden soll. Kann None sein (d. h. default_memcache_policy wird verwendet).
get_memcache_timeout_policy()
Liefert die aktuelle Richtlinienfunktion für das Memcache-Zeitlimit. Diese Richtlinienfunktion verwendet ein Key-Instanzargument und liefert das gewünschte Memcache-Zeitlimit in Sekunden (oder Null, um das Standardzeitlimit zu verwenden). Kann None sein, das default_memcache_timeout_policy verwendet.
set_cache_policy(func)
Legt die Cache-Richtlinienfunktion fest.

Argumente

func
Diese Funktion verwendet ein Key-Instanzargument und gibt einen bool-Wert zurück, der angibt, ob die Entität mit diesem Schlüssel im Kontext-Cache zwischengespeichert werden soll. Kann None sein.
set_datastore_policy(func)
Legt die Datenspeicher-Richtlinienfunktion fest.

Argumente

func
Diese Funktion verwendet ein Key-Instanzargument und gibt einen bool-Wert zurück, der angibt, ob die Entität mit diesem Schlüssel im nichtflüchtigen Datenspeicher gespeichert werden soll. Kann None sein.
set_memcache_policy(func)
Legt die Memcache-Richtlinienfunktion fest.

Argumente

func
Diese Funktion verwendet ein Key-Instanzargument und gibt einen bool-Wert zurück, der angibt, ob die Entität mit diesem Schlüssel im Kontext-Cache zwischengespeichert werden soll. Kann None sein.
set_memcache_timeout_policy(func)
Legt die Richtlinienfunktion für das Memcache-Zeitlimit fest.

Argumente

func
Diese Funktion verwendet ein Key-Instanzargument und gibt das gewünschte Memcache-Zeitlimit in Sekunden zurück (oder Null, um das Standardzeitlimit zu verwenden). Kann None sein.

Instanzmethoden für Memcache und Urlfetch

Die vollständige Liste der Methoden finden Sie in der Memcache API-Referenz. Im Folgenden sind einige der gängigeren Methoden aufgeführt:

memcache_add(key, value, time, namespace)
Asynchrone automatische Batchverarbeitung für Memcache add().
memcache_cas(key, value, time, namespace)
Asynchrone automatische Batchverarbeitung für Memcache Client cas() (Compare-and-Swap).
memcache_decr(key, delta, initial_value, namespace)
Asynchrone automatische Batchverarbeitung für Memcache decr().
memcache_delete(key, seconds, namespace)
Asynchrone automatische Batchverarbeitung für Memcache delete().
memcache_get(key, namespace, use_cache)
Asynchrone automatische Batchverarbeitung für Memcache get().

Liefert Future, dessen Rückgabewert der aus dem Memcache abgerufene Wert oder None ist.

memcache_gets(key, namespace, use_cache)
Asynchrone automatische Batchverarbeitung für Memcache gets().
memcache_incr(key, delta, initial_value, namespace)
Asynchrone automatische Batchverarbeitung für Memcache incr().
memcache_replace(key, value, time, namespace)
Asynchrone automatische Batchverarbeitung für Memcache replace().
memcache_set(key, value, time, namespace, use_cache)
Asynchrone automatische Batchverarbeitung für Memcache set().
urlfetch(url, payload, method, headers, allow_truncated, follow_redirects, validate_certificate, deadline, callback)
Asynchrone automatische Batchverarbeitung für urlfetch fetch().

Methoden zur Transaktionsverwaltung

call_on_commit(callback)
Stellt einen Callback zum Aufrufen nach dem erfolgreichen Commit einer Transaktion in die Warteschlange.

Außerhalb einer Transaktion wird der Callback sofort aufgerufen.

In einer Transaktion können mehrere Callbacks registriert werden. Nach dem Commit der Transaktion werden diese Callbacks in der Reihenfolge ihrer Registrierung aufgerufen. Wenn die Transaktion fehlschlägt, werden die Callbacks nicht aufgerufen.

Wenn ein Callback eine Ausnahme auslöst, tritt diese normal auf. Wenn also der Callback sofort aufgerufen wird, tritt jede Ausnahme, die von ihm ausgelöst wird, sofort auf. Wenn der Aufruf bis nach dem Commit verschoben wird, werden verbleibende Callbacks übersprungen und die Ausnahme erfolgt über den Aufruf von transaction(). Allerdings ist die Transaktion an diesem Punkt bereits mit Commit bestätigt.

Argumente

callback
Callback-Funktion Diese Callback-Funktion verwendet keine Parameter und gibt nichts zurück.
in_transaction()
Liefert True, wenn dieser Kontext eine Transaktion darstellt, ansonsten False.

Statische Methoden

default_cache_policy(key)
Prüft auf eine _use_cache-Klassenvariable für die Modellklasse der Entität. Wenn eine vorhanden ist, wird sie zurückgegeben. Andernfalls wird None zurückgeben.
default_datastore_policy(key)
Prüft auf eine _use_datastore-Klassenvariable für die Modellklasse der Entität. Wenn eine vorhanden ist, wird sie zurückgegeben. Andernfalls wird None zurückgeben.
default_memcache_policy(key)
Prüft auf eine _use_memcache-Klassenvariable für die Modellklasse der Entität. Wenn eine vorhanden ist, wird sie zurückgegeben. Andernfalls wird None zurückgeben.
default_memcache_timeout_policy(key)
Prüft auf eine _memcache_timeout-Klassenvariable für die Modellklasse der Entität. Wenn eine vorhanden ist, wird sie zurückgegeben. Andernfalls wird None zurückgeben.