Add retry_sleep to retry

This commit is contained in:
simon987 2021-04-06 21:23:28 -04:00
parent 53ac0c37e8
commit 6e1aa53455
3 changed files with 7 additions and 4 deletions

View File

@ -4,12 +4,14 @@ import time
from threading import Lock from threading import Lock
import atexit import atexit
from time import sleep
import siphash import siphash
last_time_called = dict() last_time_called = dict()
def retry(attempts, callback=None): def retry(attempts, callback=None, retry_sleep=0):
def decorate(func): def decorate(func):
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
retries = attempts retries = attempts
@ -20,6 +22,7 @@ def retry(attempts, callback=None):
if callback: if callback:
callback(e) callback(e)
retries -= 1 retries -= 1
sleep(retry_sleep)
return wrapper return wrapper
return decorate return decorate

View File

@ -112,7 +112,7 @@ def download_file(url, destination, session=None, headers=None, overwrite=False,
class Web: class Web:
def __init__(self, proxy=None, rps=1, retries=3, logger=None, cookie_file=None, retry_codes=None, session=None, def __init__(self, proxy=None, rps=1, retries=3, retry_sleep=0, logger=None, cookie_file=None, retry_codes=None, session=None,
ua=None): ua=None):
self._cookie_file = cookie_file self._cookie_file = cookie_file
self._proxy = proxy self._proxy = proxy
@ -140,7 +140,7 @@ class Web:
} }
@rate_limit(rps) @rate_limit(rps)
@retry(retries, callback=self._error_callback) @retry(retries, callback=self._error_callback, retry_sleep=retry_sleep)
def get(url, **kwargs): def get(url, **kwargs):
self._current_req = "GET", url, kwargs self._current_req = "GET", url, kwargs
r = self._session.get(url, **kwargs) r = self._session.get(url, **kwargs)

View File

@ -2,7 +2,7 @@ from setuptools import setup
setup( setup(
name="hexlib", name="hexlib",
version="1.36", version="1.37",
description="Misc utility methods", description="Misc utility methods",
author="simon987", author="simon987",
author_email="me@simon987.net", author_email="me@simon987.net",