request_object(self,
address,
state,
object_handler,
error_handler=None,
timeout_handler=None,
backup_state=None,
timeout=datetime.timedelta(0, 3600),
freshness_period=None,
expiration_period=None,
purge_period=None)
Request an object with given address and state not worse than
state . The object will be taken from cache if available, and
created/fetched otherwise. The request is asynchronous -- this metod
doesn't return the object directly, but the object_handler is called
as soon as the object is available (this may be before request_object
returns and may happen in other thread). On error the error_handler
will be called, and on timeout -- the timeout_handler . -
- Parameters:
address -
address of the object requested.
(type=any hashable)
state -
the worst acceptable object state. When 'new' then always
a new object will be created/fetched. 'stale' will select any
item available in cache.
(type="new", "fresh", "old" or "stale")
object_handler -
function to be called when object is available.
It will be called with the following arguments: address, object
and its state.
(type=callable(address, value, state))
error_handler -
function to be called on object retrieval error.
It will be called with two arguments: requested address and
additional error information (fetcher-specific, may be
StanzaError for XMPP objects). If not given, then the object
handler will be called with object set to None and state
"error".
(type=callable(address, error_data))
timeout_handler -
function to be called on object retrieval
timeout. It will be called with only one argument: the requested
address. If not given, then the error_handler will be called
instead, with error details set to None .
(type=callable(address))
backup_state -
when set and object in state state is not
available in the cache and object retrieval failed then object
with this state will also be looked-up in the cache and provided
if available.
(type="new", "fresh", "old" or "stale")
timeout -
time interval after which retrieval of the object
should be given up.
(type=timedelta )
freshness_period -
time interval after which the item created
should become 'old'.
(type=timedelta )
expiration_period -
time interval after which the item created
should become 'stale'.
(type=timedelta )
purge_period -
time interval after which the item created
shuld be removed from the cache.
(type=timedelta )
|