Python 2 は、コミュニティによるサポートを終了しました。Python 2 アプリを Python 3 に移行することをおすすめします。

NDB コンテキスト クラス

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

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

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

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

get_cache_policy()
キャッシュ ポリシー関数を返します。 このポリシー関数は、キーインスタンスを引数として取り、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
この関数は、キーインスタンスを引数として取り、bool を返して、このキーを持つエンティティを永続Datastoreに格納する必要があるかどうかを示します。 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 を返します。