擅长:python、mysql、java
<p><strong>更新:</strong>有一个更好维护的重试库分支,名为<a href="http://tenacity.readthedocs.io/en/latest/" rel="noreferrer">tenacity</a>,它支持更多功能,总体上更灵活。</p>
<hr/>
<p>是的,这里有一个<a href="https://pypi.python.org/pypi/retrying" rel="noreferrer">retrying library</a>,它有一个decorator,它实现了多种重试逻辑,您可以组合这些逻辑:</p>
<p>一些例子:</p>
<pre><code>@retry(stop_max_attempt_number=7)
def stop_after_7_attempts():
print "Stopping after 7 attempts"
@retry(wait_fixed=2000)
def wait_2_s():
print "Wait 2 second between retries"
@retry(wait_exponential_multiplier=1000, wait_exponential_max=10000)
def wait_exponential_1000():
print "Wait 2^x * 1000 milliseconds between each retry,"
print "up to 10 seconds, then 10 seconds afterwards"
</code></pre>