アプリケーションは、Context を使用してキャッシュ ポリシーを制御できます。また、Context
には、Memcache と URL 取得を NDB の非同期機能に統合するための便利な非同期 API が用意されています。特に Memcache API は自動バッチ処理をサポートします。
- キャッシュ管理インスタンス メソッド
- Memcache および Urlfetch インスタンス メソッド
- トランザクション管理メソッド
- 静的メソッド
キャッシュ管理インスタンス メソッド
- 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
を返します。