NDB コンテキスト クラス

アプリケーションは、Context を使用してキャッシュ ポリシーを制御できます。また、Context には、Memcache と URL 取得を NDB の非同期機能に統合するための便利な非同期 API が用意されています。特に Memcache API は自動バッチ処理をサポートします。

キャッシュ管理インスタンス メソッド

clear_cache()
インコンテキスト キャッシュをクリアします。
flush()
すべての自動バッチキューをフラッシュします(すべてサーバーに送信します)。フラッシュは非同期に発生します。

Future を返します。フラッシングが完了するまで待機するには、このオブジェクトの wait() メソッドを呼び出します。

get_cache_policy()
キャッシュ ポリシー関数を返します。このポリシー関数は、Key インスタンスを引数として取り、このキーを持つエンティティがインコンテキスト キャッシュに保存されるべきかどうかを示す bool を返します。None の場合があります( default_cache_policy を使用)。
get_datastore_policy()
現在のコンテキストの Datastore ポリシー関数を返します。このポリシー関数は、Key インスタンスを引数として取り、Datastore を使用するかどうかを示す 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
この関数は、キーインスタンスを引数として取り、このキーを持つエンティティをインコンテキスト キャッシュに保存する必要があるかどうかを示す bool を返します。None の場合があります。
set_datastore_policy(func)
Datastore ポリシー関数を設定します。

引数

func
この関数は、Key インスタンスを引数として取り、このキーを持つエンティティが永続データストアに保存されるべきかどうかを示す bool を返します。None の場合があります。
set_memcache_policy(func)
memcache ポリシー関数を設定します。

引数

func
この関数は、キーインスタンスを引数として取り、このキーを持つエンティティをインコンテキスト キャッシュに保存する必要があるかどうかを示す bool を返します。None の場合があります。
set_memcache_timeout_policy(func)
memcache タイムアウト ポリシー関数を設定します。

引数

func
この関数は、Key インスタンスを引数として取り、望ましい memcache タイムアウトを秒単位で返します(デフォルトのタイムアウトを使用する場合はゼロを返します)。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 または None から取得した値である Future を返します。

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)
トランザクションの commit の成功時に呼ぶ出すためにコールバックをキューに入れます。

トランザクションでない場合は、コールバックはすぐに呼び出されます。

トランザクションでは、複数のコールバックが登録され、トランザクションが commit されると、登録された順序で呼び出されます。トランザクションが失敗した場合、コールバックは呼び出されません。

コールバックが例外を発生させた場合は、通常と同じです。つまり、コールバックがすぐに呼び出された場合、それが発生させた例外もすぐに上位階層へ伝達されます。呼び出しが commit するまで延期されている場合、残りのコールバックはスキップされ、例外は transaction() コールによって上位階層へ伝達されます(ただし、その時点でトランザクションはすでに commit されています)。

引数

callback
コールバック関数。このコールバック関数は、パラメータを受け取らず、何も返しません。
in_transaction()
このコンテキストがトランザクションを表す場合は 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 を返します。