Python 3.x Decorator backoff.on_谓词未按预期等待

Python 3.x Decorator backoff.on_谓词未按预期等待,python-3.x,exponential-backoff,Python 3.x,Exponential Backoff,我检查了调用之间的恒定间隔,发现在这个无限循环中,连续调用之间的时间不是5秒,而是随机变化的,虽然不到5秒。我不明白,为什么 from datetime import datetime from backoff import on_predicate, constant @on_predicate(constant, interval=5) def fnc(i): print('%s %d' % (datetime.now().strftime("%H:%M:%S:%f"),i), f

我检查了调用之间的恒定间隔,发现在这个无限循环中,连续调用之间的时间不是5秒,而是随机变化的,虽然不到5秒。我不明白,为什么

from datetime import datetime
from backoff import on_predicate, constant

@on_predicate(constant, interval=5)
def fnc(i):
    print('%s %d' % (datetime.now().strftime("%H:%M:%S:%f"),i), flush=True)
    return i

for i in range(7):
    fnc(i)
输出:

17:48:48:348775 0
17:48:50:898752 0
17:48:52:686353 0
17:48:53:037900 0
17:48:57:264762 0
17:48:58:348803 0

backoff
库使用抖动函数来随机化间隔。在执行指数退避或类似操作时,这通常是您想要的,但在使用
常量时,这可能会令人惊讶。要禁用抖动,请指定
jitter=None

@on_predicate(constant, interval=5, jitter=None)
def fnc(i):
    print('%s %d' % (datetime.now().strftime("%H:%M:%S:%f"),i), flush=True)
    return i