feat: Add exponential retry for api connection
This commit is contained in:
parent
880f444ff7
commit
7dcf83dc4a
1 changed files with 18 additions and 1 deletions
|
@ -1,9 +1,11 @@
|
|||
import json
|
||||
import logging
|
||||
import sys
|
||||
import time
|
||||
|
||||
import click
|
||||
import click_log
|
||||
import uptime_kuma_api
|
||||
from uptime_kuma_api import UptimeKumaApi
|
||||
|
||||
from .hydratation import hydrate_http_probes
|
||||
|
@ -14,6 +16,20 @@ logger = logging.getLogger(__name__)
|
|||
click_log.basic_config()
|
||||
|
||||
|
||||
def get_api_with_retries(host, retries=5):
|
||||
delay = 5
|
||||
while True:
|
||||
try:
|
||||
return UptimeKumaApi(host)
|
||||
except uptime_kuma_api.exceptions.UptimeKumaException:
|
||||
logger.warn(f"Error while connectiong, retrying in {delay}s.")
|
||||
if retries == 0:
|
||||
raise
|
||||
retries -= 1
|
||||
time.sleep(delay)
|
||||
delay *= 4
|
||||
|
||||
|
||||
@click.group()
|
||||
def cli():
|
||||
pass
|
||||
|
@ -76,7 +92,8 @@ def apply_json(
|
|||
logger.debug(
|
||||
f"Flags value:\n - scrape_http_keywords: {scrape_http_keywords}\n - no_autocreate_tags: {no_autocreate_tags}\n - keywords_fallback: {keywords_fallback}"
|
||||
)
|
||||
with UptimeKumaApi(host) as api:
|
||||
|
||||
with get_api_with_retries(host) as api:
|
||||
logging.debug("Reading json")
|
||||
data = json.load(file)
|
||||
logging.debug("Parsing json")
|
||||
|
|
Loading…
Reference in a new issue