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 密钥将从缓存中丢弃。

incr(key, delta=1)[源代码]
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
popitem() (k, v), remove and return some (key, value) pair[源代码]

作为2元组;但如果D为空,则引发KeyError。

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.dictfilter(d=None, **kw)[源代码]

从DICT中删除所有关键点 d 它的价值是 None

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__()

evaluate()[源代码]
kombu.utils.functional.maybe_evaluate(value)[源代码]

仅当值为 lazy 举个例子。

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

都被养大了。回调必须接受三个参数: excinterval_rangeretries ,在哪里 exc 是异常实例, interval_range 是一个迭代器,它以秒为单位返回下一次睡眠的时间,并且 retries 是以前的重试次数。

MAX_RETRIES(Int):放弃之前的最大重试次数。

如果这两项和超时都没有设置,我们将永远重试。如果达到其中一个和超时,则停止。

INTERVAL_START(FLOAT):我们开始睡眠的时间(秒)

两次重试之间。

INTERVAL_STEP(FLOAT):间隔增加多少

每次重试。

Interval_max(浮点数):休眠的最大秒数

两次重试之间。

超时(Int):放弃之前等待的最长秒数。