An application can use a Context to control its caching policy.
Context
also offers convenient asynchronous APIs for
Memcache and URL Fetch integrated into NDB's asynchronous facilities;
in particular, the Memcache API supports auto-batching.
- Cache Management Instance Methods
- Memcache and Urlfetch Instance Methods
- Transaction Management Methods
- Static Methods
Cache Management Instance Methods
- clear_cache()
- Clears the in-context cache.
- flush()
- Flush all auto-batcher queues (sending their work to the servers).
The flush happens asynchronously.
Returns a
Future
. To wait for the flushing to finish, call this object'swait()
method. - get_cache_policy()
- Returns the cache policy function.
This policy function takes a Key
instance argument and returns
a
bool
indicating whether the entity with this key should be cached in the in-context cache. May beNone
(meaning usedefault_cache_policy
). - get_datastore_policy()
- Returns the current context Datastore policy function.
This policy function takes a Key
instance argument and returns
a
bool
indicating if it should use the Datastore. May beNone
(meaning usedefault_datastore_policy
). - get_memcache_policy()
- Returns the current memcache policy function.
This policy function takes a Key
instance argument and returns
a
bool
indicating if it should be cached. May beNone
(meaning usedefault_memcache_policy
). - get_memcache_timeout_policy()
- Returns the current memcache timeout policy function.
This policy function takes a Key
instance argument and returns
the desired memcache timeout in seconds (or returns
zero to use the default timeout).
May be
None
, which usesdefault_memcache_timeout_policy
. - set_cache_policy(func)
- Sets the cache policy function.
Arguments
- func
- This function takes a
Key instance argument and
returns a
bool
indicating whether the entity with this key should be cached in the in-context cache. May beNone
.
- set_datastore_policy(func)
- Sets the Datastore policy function.
Arguments
- func
- This function takes a
Key instance argument and
returns a
bool
indicating whether the entity with this key should be stored in the persistent Datastore. May beNone
.
- set_memcache_policy(func)
- Sets the memcache policy function.
Arguments
- func
- This function takes a
Key instance argument and
returns a
bool
indicating whether the entity with this key should be cached in the in-context cache. May beNone
.
- set_memcache_timeout_policy(func)
- Sets the memcache timeout policy function.
Arguments
- func
- This function takes a
Key
instance argument and returns the desired memcache timeout in seconds (or returns zero to use the default timeout). May beNone
.
Memcache and Urlfetch Instance Methods
The full list of methods is found in the Memcache API reference. The list below highlights some of the more commonly used methods:
- memcache_add(key, value, time, namespace)
- Async auto-batching memcache
add()
. - memcache_cas(key, value, time, namespace)
- Async auto-batching memcache
Client
cas()
(compare-and-swap). - memcache_decr(key, delta, initial_value, namespace)
- Async auto-batching memcache
decr()
. - memcache_delete(key, seconds, namespace)
- Async auto-batching memcache
delete()
. - memcache_get(key, namespace, use_cache)
- Async auto-batching memcache
get()
.Returns a
Future
whose return value is the value retrieved from memcache orNone
. - memcache_gets(key, namespace, use_cache)
- Async auto-batching memcache
gets()
. - memcache_incr(key, delta, initial_value, namespace)
- Async auto-batching memcache
incr()
. - memcache_replace(key, value, time, namespace)
- Async auto-batching memcache
replace()
. - memcache_set(key, value, time, namespace, use_cache)
- Async auto-batching memcache
set()
. - urlfetch(url, payload, method, headers, allow_truncated, follow_redirects, validate_certificate, deadline, callback)
- Async auto-batching urlfetch
fetch().
Transaction Management Methods
- call_on_commit(callback)
- Queues a callback to call upon successful commit of a transaction.
If not in a transaction, the callback is called immediately.
In a transaction, multiple callbacks may be registered and will be called once the transaction commits in the order in which they were registered. If the transaction fails, the callbacks will not be called.
If a callback raises an exception, it bubbles up normally. This means: If the callback is called immediately, any exception it raises will bubble up immediately. If the call is postponed until commit, remaining callbacks will be skipped and the exception will bubble up through the
transaction()
call. (However, the transaction is already committed at that point.)Arguments
- callback
- Callback function. This callback function takes no parameters and returns nothing.
- in_transaction()
- Returns
True
if this Context represents a transaction,False
otherwise.
Static Methods
- default_cache_policy(key)
- Checks for a
_use_cache
class variable on the entity's model class; if there is one, return it. Otherwise, returnNone
. - default_datastore_policy(key)
- Checks for a
_use_datastore
class variable on the entity's model class; if there is one, return it. Otherwise, returnNone
. - default_memcache_policy(key)
- Checks for a
_use_memcache
class variable on the entity's model class; if there is one, return it. Otherwise, returnNone
. - default_memcache_timeout_policy(key)
- Checks for a
_memcache_timeout
class variable on the entity's model class; if there is one, return it. Otherwise, returnNone
.