From 061c653bce6fff3ee2ed2ecb611eb9b232d2353a Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 23 Jun 2023 00:15:07 +0700 Subject: [PATCH] retry get config better startup error handling, #485 --- tubearchivist/home/src/ta/config.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tubearchivist/home/src/ta/config.py b/tubearchivist/home/src/ta/config.py index f191eae9..f9b34742 100644 --- a/tubearchivist/home/src/ta/config.py +++ b/tubearchivist/home/src/ta/config.py @@ -8,6 +8,7 @@ import json import os import re from random import randint +from time import sleep import requests from celery.schedules import crontab @@ -67,11 +68,19 @@ class AppConfig: @staticmethod def get_config_redis(): """read config json set from redis to overwrite defaults""" - config = RedisArchivist().get_message("config") - if not list(config.values())[0]: - return False + for i in range(10): + try: + config = RedisArchivist().get_message("config") + if not list(config.values())[0]: + return False - return config + return config + + except Exception: # pylint: disable=broad-except + print(f"... Redis connection failed, retry [{i}/10]") + sleep(3) + + raise ConnectionError("failed to connect to redis") def update_config(self, form_post): """update config values from settings form"""