NDB 內容類別

應用程式可透過「Context」控管其快取政策。 針對整合至 NDB 非同步服務供應商的 Memcache 與網址擷取服務,Context 也另外提供便利的非同步 API;特別的是,Memcache API 還支援自動批次功能。

快取管理執行個體方法

clear_cache()
清除內容快取。
flush()
清除所有自動批次處理器佇列 (將工作傳送到伺服器)。清除作業會以非同步方式進行。

傳回 Future。如要等待清除結束,請呼叫物件的 wait() 方法。

get_cache_policy()
傳回快取政策函式。這個政策函式必須使用 Key 執行個體引數,並會傳回 bool,指示內容快取是否應快取具備這組金鑰的實體。回應可能是 None (代表使用 default_cache_policy)。
get_datastore_policy()
傳回目前內容資料儲存庫政策函式。這個政策函式必須使用 Key 執行個體引數,並會傳回 bool,指示是否應使用資料儲存庫。回應可能是 None (代表使用 default_datastore_policy)。
get_memcache_policy()
傳回目前的 Memcache 政策函式。這個政策函式必須使用 Key 執行個體引數,並會傳回 bool,指示是否應加以快取。回應可能是 None (代表使用 default_memcache_policy)。
get_memcache_timeout_policy()
傳回目前的 Memcache 逾時政策函式。這個政策函式需要使用 Key 執行個體引數,並會傳回所要的 Memcache 逾時秒數 (或傳回零以使用預設逾時值)。回應可能是 None (代表使用 default_memcache_timeout_policy)。
set_cache_policy(func)
設定快取政策函式。

引數

func
這個函式必須使用 Key 執行個體引數,並會傳回 bool,指示內容快取是否應快取具備這組金鑰的實體。可能為 None
set_datastore_policy(func)
設定資料儲存庫政策函式。

引數

func
這個函式必須使用 Key 執行個體引數,並會傳回 bool,指示永久資料儲存庫是否應儲存具備這組金鑰的實體。可能為 None
set_memcache_policy(func)
設定 Memcache 政策函式。

引數

func
這個函式必須使用 Key 執行個體引數,並會傳回 bool,指示內容快取是否應快取具備這組金鑰的實體。可能為 None
set_memcache_timeout_policy(func)
設定 Memcache 逾時政策函式。

引數

func
這個函式必須使用 Key 執行個體引數,並會傳回所需的 Memcache 逾時秒數 (或傳回 0 來使用預設逾時值)。可能為 None

Memcache 與 Urlfetch 執行個體方法

您可以在 Memcache API 參考資料中找到這些方法的完整清單。下列清單重點說明一些常用方法:

memcache_add(key, value, time, namespace)
非同步自動批次處理 Memcache add()
memcache_cas(key, value, time, namespace)
非同步自動批次處理 Memcache Client cas() (比較及替換)。
memcache_decr(key, delta, initial_value, namespace)
非同步自動批次處理 Memcache decr()
memcache_delete(key, seconds, namespace)
非同步自動批次處理 Memcache delete()
memcache_get(key, namespace, use_cache)
非同步自動批次處理 Memcache get()

傳回其傳回值是從 Memcache 擷取而來的 Future,或為 None

memcache_gets(key, namespace, use_cache)
非同步自動批次處理 Memcache gets()
memcache_incr(key, delta, initial_value, namespace)
非同步自動批次處理 Memcache incr()
memcache_replace(key, value, time, namespace)
非同步自動批次處理 Memcache replace()
memcache_set(key, value, time, namespace, use_cache)
非同步自動批次處理 Memcache set()
urlfetch(url, payload, method, headers, allow_truncated, follow_redirects, validate_certificate, deadline, callback)
非同步自動批次處理 Urlfetch fetch().

交易管理方法

call_on_commit(callback)
將回呼排入佇列,以便在成功修訂交易時予以呼叫。

如果不在交易中,則會立即呼叫回呼。

一項交易可能會註冊多項回呼,並在交易進行修訂時立即按照註冊順序進行呼叫。如果交易失敗,系統就不會呼叫回呼。

如果回呼引發例外狀況,則例外狀況會正常出現。也就是說,如果系統立即呼叫回呼,該項回呼產生的任何例外狀況都會立即出現。如果系統等到修訂時才進行呼叫,則會略過剩餘的回呼,例外狀況也會透過 transaction() 呼叫出現 (不過交易此時已完成修訂)。

引數

callback
回呼函式。這個回呼函式無需任何參數且不會傳回任何值。
in_transaction()
在 Context 代表交易時傳回 True;如果不是,則傳回 False

靜態方法

default_cache_policy(key)
檢查實體的模型類別是否含有 _use_cache 類別變數。如有,則傳回該變數。若無,則會傳回 None
default_datastore_policy(key)
檢查實體的模型類別是否含有 _use_datastore 類別變數。如有,則傳回該變數。若無,則會傳回 None
default_memcache_policy(key)
檢查實體的模型類別是否含有 _use_memcache 類別變數。如有,則傳回該變數。若無,則會傳回 None
default_memcache_timeout_policy(key)
檢查實體的模型類別是否含有 _memcache_timeout 類別變數。如有,則傳回該變數。若無,則會傳回 None
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Python 2 適用的 App Engine 標準環境