djblets.cache.synchronizer¶
- class GenerationSynchronizer(cache_key, normalize_cache_key=True)[source]¶
Manages the synchronization of generation state across processes.
This is a utility class that makes it easy for consumers to synchronize a generation ID between processes and servers. This ID can be used to check whether a process has the latest version of some data, updating if the version it has is expired.
Callers should create a
GenerationSynchronizer
with a stable cache key, which will be used for communication between processes/servers. The initial generation number will be fetched, or created if one does not already exist.When the caller has updated something in the state, it must call
mark_updated()
. This will bump the synchronization generation number, which will invalidate other processes.Other callers, upon noticing that their state is expired (through
is_expired()
) can re-fetch or re-compute the data needed and then callrefresh()
to refresh the instance’s counter from the cache.- cache_key¶
The synchronization cache key.
- Type
unicode
- is_expired()[source]¶
Return whether the current state has expired.
- Returns
True
if the state has expired.False
if this has the latest cached generation.- Return type
- refresh()[source]¶
Refresh the generation ID from cache.
This should be called after having updated to the latest state.