def _get_waiting_in_secs(waiting_in_secs,
num_retries,
max_waiting_in_secs):
"""Retrieve the waiting time in seconds.
This method uses exponential back-off in figuring out the number of
seconds to wait; however, the max wait time shouldn't be more than
what is specified via max_waiting_in_seconds.
Args:
waiting_in_secs: waiting time in seconds.
num_retries: number of retries, starting from 0.
max_waiting_in_secs: maximum waiting time in seconds.
Returns:
The number of seconds to wait.
"""
# make the backoff going up even faster
waiting_in_secs *= 2**num_retries
jitter = waiting_in_secs * 0.2
waiting_in_secs += random.triangular(-jitter, jitter)
return min(waiting_in_secs, max_waiting_in_secs)
评论列表
文章目录