我正在尝试使用重试,但它没有重试。
retry(stop_max_attempt_number=8,
wait_fixed=15000)(check_type(var1,type))
check_type:此函数将返回true或false。 它应该重试,直到此函数返回true。 请帮忙解决这个问题。
答案 0 :(得分:2)
我假设您从retry
包中询问retrying
函数。如果函数引发异常,或者断言失败,retry()
将重试你的函数,所以你可以将你的函数包装到另一个函数中:
def wrap_function(var1, type):
return_value = check_type(var1, type)
assert return_value is True
caller = retry(stop_max_attempt_number=8, wait_fixed=15000)(
wrap_function)
caller(var1, type)
另请注意retry()
必须接收要执行的函数,并返回一个可以调用的函数。因此,当您将函数传递给retry()
时,必须删除括号和参数(否则您将传递True
或False
)并且必须保存返回的函数以便稍后调用它(我在我的例子中使用了变量caller
。)