Coverage for src/task/redis_client.py: 0%
25 statements
« prev ^ index » next coverage.py v7.9.0, created at 2025-11-03 17:19 +0000
« prev ^ index » next coverage.py v7.9.0, created at 2025-11-03 17:19 +0000
1import time
2from venv import logger
4import redis
7class RedisClient:
8 def __init__(self):
9 self.host = "localhost"
10 self.port = 6379
11 self.decode_responses = True
13 def get_connection(self):
14 return redis.Redis(host=self.host, port=self.port, decode_responses=self.decode_responses)
16 def exec_cmd(self, command, *args, **kwargs):
17 max_retries = 3
18 timeout = 5
19 count = 0
20 while True:
21 try:
22 return command(*args, **kwargs)
23 except (redis.exceptions.ConnectionError, redis.exceptions.TimeoutError):
24 count += 1
25 if count > max_retries:
26 raise
27 logger.info("Retrying in {} seconds".format(timeout))
28 time.sleep(timeout)
29 except Exception as ex:
30 logger.exception("Exception occured {}".format(ex))