diff --git a/legendary/downloader/mp/workers.py b/legendary/downloader/mp/workers.py index 927e86b..74e34e4 100644 --- a/legendary/downloader/mp/workers.py +++ b/legendary/downloader/mp/workers.py @@ -19,7 +19,7 @@ from legendary.models.downloading import ( class DLWorker(Process): - def __init__(self, name, queue, out_queue, shm, max_retries=5, + def __init__(self, name, queue, out_queue, shm, max_retries=7, logging_queue=None, dl_timeout=10): super().__init__(name=name) self.q = queue @@ -65,6 +65,12 @@ class DLWorker(Process): try: while tries < self.max_retries: + # retry once immediately, otherwise do exponential backoff + if tries > 1: + sleep_time = 2**(tries+1) + logger.debug(f'Sleeping {sleep_time} seconds before retrying...') + time.sleep(sleep_time) + # print('Downloading', job.url) logger.debug(f'Downloading {job.url}')