Hi,

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 subscription 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))

Subscribe here: https://www.pythonninja.xyz/subscribe

Feedbacks and criticism are welcome.
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to