アプリケーションは、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
Clientcas()(比較とスワップ)。 - 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を返します。