I am creating a Python newsletter showcasing useful code snippets from popular open-source libraries. I will also be providing a runnable demo link to better understand the working.
Newsletter link: https://www.pythonninja.xyz/subscribe
A sample snippet from the newsletter:
HTTP Request retrying with Backoffs - Technique for retrying failed HTTP requests.
From Google Maps Services Python (https://github.com/googlemaps/google-maps-services-python)
Demo link: https://repl.it/@PythonNinja/requestretries
""" first_request_time: The time of the first request (None if no retries have occurred). retry_counter: The count of retries, or zero for the first attempt. """
if not first_request_time: first_request_time = datetime.now()
elapsed = datetime.now() - first_request_time if elapsed > self.retry_timeout: raise googlemaps.exceptions.Timeout()
if retry_counter > 0: # 0.5 * (1.5 ^ i) is an increased sleep time of 1.5x per iteration, # starting at 0.5s when retry_counter=0. The first retry will occur # at 1, so subtract that first. delay_seconds = 0.5 * 1.5 ** (retry_counter - 1)
# Jitter this value by 50% and pause. time.sleep(delay_seconds * (random.random() + 0.5))
Feedbacks and criticism are welcome.