This document is for Kombu's development version, which can be significantly different from previous releases. Get the stable docs here: 5.0.
功能型实用程序- kombu.utils.functional
¶
功能实用程序。
- class kombu.utils.functional.LRUCache(limit=None)[源代码]¶
使用双向链表跟踪访问的LRU缓存实施。
论点:¶
- Limit(Int):要保存在缓存中的最大键数。
当插入新密钥并且已超过限制时, Least Recently Used 密钥将从缓存中丢弃。
- items() a set-like object providing a view on D's items ¶
- iteritems()¶
- iterkeys()¶
- itervalues()¶
- keys() a set-like object providing a view on D's keys ¶
- update([E, ]**F) None. Update D from mapping/iterable E and F. [源代码]¶
如果E存在并且具有.key()方法,则执行:for k in E:d [k] =E [k] 如果E存在并且缺少.key()方法,则执行:for(k,v)in E:d [k] =v在任何一种情况下,后跟:对于k,在F.中为v。Items():D [k] =v
- values() an object providing a view on D's values ¶
- kombu.utils.functional.is_list(obj, scalars=(<class 'collections.abc.Mapping'>, <class 'str'>), iters=(<class 'collections.abc.Iterable'>, ))[源代码]¶
如果对象是可迭代的,则返回True。
注:¶
如果对象是映射或字符串,则返回FALSE。
- class kombu.utils.functional.lazy(fun, *args, **kwargs)[源代码]¶
有懒惰的评价。
在调用时求值,或者如果
evaluate()
方法被调用。每次调用时都会重新计算该函数。- 将评估承诺的过载操作:
__str__()
,__repr__()
,__cmp__()
。
- kombu.utils.functional.maybe_list(obj, scalars=(<class 'collections.abc.Mapping'>, <class 'str'>))[源代码]¶
如果是,则返回一个元素的列表
l
是一个标量。
- kombu.utils.functional.memoize(maxsize=None, keyfun=None, Cache=<class 'kombu.utils.functional.LRUCache'>)[源代码]¶
用于缓存函数返回值的修饰符。
- kombu.utils.functional.retry_over_time(fun, catch, args=None, kwargs=None, errback=None, max_retries=None, interval_start=2, interval_step=2, interval_max=30, callback=None, timeout=None)[源代码]¶
反复重试该功能,直到超过最大重试次数。
对于每次重试,我们在重试之前会休眠一段时间,每次重试都会增加此间隔,直到达到最大秒数。
论点:¶
Fun(Callable):尝试捕获(Tuple)的函数 [BaseException] ):捕获的异常可以是
元组或单个异常类。
关键字参数:¶
Args(Tuple):传递给函数的位置参数。Kwargs(Dict):传递给函数的关键字参数。Errback(可回调):当出现异常时的回调
catch
都被养大了。回调必须接受三个参数:
exc
,interval_range
和retries
,在哪里exc
是异常实例,interval_range
是一个迭代器,它以秒为单位返回下一次睡眠的时间,并且retries
是以前的重试次数。- MAX_RETRIES(Int):放弃之前的最大重试次数。
如果这两项和超时都没有设置,我们将永远重试。如果达到其中一个和超时,则停止。
- INTERVAL_START(FLOAT):我们开始睡眠的时间(秒)
两次重试之间。
- INTERVAL_STEP(FLOAT):间隔增加多少
每次重试。
- Interval_max(浮点数):休眠的最大秒数
两次重试之间。
超时(Int):放弃之前等待的最长秒数。