Utilities - kombu.utils¶
kombu.utils¶
Internal utilities.
-
kombu.utils.
uuid
()[source]¶ Generate a unique id, having - hopefully - a very small chance of collision.
For now this is provided by
uuid.uuid4()
.
-
kombu.utils.
retry_over_time
(fun, catch, args=[], kwargs={}, errback=None, max_retries=None, interval_start=2, interval_step=2, interval_max=30, callback=None)[source]¶ Retry the function over and over until max retries is exceeded.
For each retry we sleep a for a while before we try again, this interval is increased for every retry until the max seconds is reached.
Parameters: - fun – The function to try
- catch – Exceptions to catch, can be either tuple or a single exception class.
- args – Positional arguments passed on to the function.
- kwargs – Keyword arguments passed on to the function.
- errback – Callback for when an exception in
catch
is raised. The callback must take two arguments:exc
andinterval
, whereexc
is the exception instance, andinterval
is the time in seconds to sleep next.. - max_retries – Maximum number of retries before we give up. If this is not set, we will retry forever.
- interval_start – How long (in seconds) we start sleeping between retries.
- interval_step – By how much the interval is increased for each retry.
- interval_max – Maximum number of seconds to sleep between retries.
-
class
kombu.utils.
cached_property
(fget=None, fset=None, fdel=None, doc=None)[source]¶ Property descriptor that caches the return value of the get function.
Examples
@cached_property def connection(self): return Connection() @connection.setter # Prepares stored value def connection(self, value): if value is None: raise TypeError('Connection must be a connection') return value @connection.deleter def connection(self, value): # Additional action to do at del(self.attr) if value is not None: print('Connection {0!r} deleted'.format(value)