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
- Instanzmethoden für Memcache und Urlfetch
- Methoden zur Transaktionsverwaltung
- Statische Methoden
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 Methodewait()
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. KannNone
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. KannNone
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. KannNone
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, dasdefault_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. KannNone
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. KannNone
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. KannNone
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). KannNone
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 oderNone
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, ansonstenFalse
.
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 wirdNone
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 wirdNone
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 wirdNone
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 wirdNone
zurückgeben.