我想使用Tenacity Python 库作为它的@retry
装饰器。但是,我想在每次重试时使用不同的参数调用我的函数,但不知道如何指定。
我的函数定义如下所示:
from tenacity import retry, retry_if_exception_type, stop_after_attempt
class CustomError(Exception):
pass
@retry(retry=retry_if_exception_type(CustomError), stop=stop_after_attempt(2))
def my_function(my_param):
result = do_some_business_logic(my_param)
if not result:
if my_param == 1:
raise CustomError()
else:
raise ValueError()
# first invoke the function with my_param=1, then retry with my_param=2
my_function(1)
这有点简化,但想法是当我第一次调用该函数时,我将1
作为第一个参数传入。重试时,我希望它将此值更改为2
. 这可以用 Tenacity 的@retry
装饰器完成吗?也许通过回调?