Solución:
La forma oficial de comprobar si la disponibilidad del servidor Redis es ping (http://redis.io/topics/quickstart).
Una solución es crear una subclase de redis y hacer 2 cosas:
- comprobar si hay una conexión en la instanciación
- escribir un controlador de excepciones en el caso de que no haya conectividad al realizar solicitudes
Si desea probar la conexión de redis una vez al inicio, use el ping()
mando.
from redis import Redis
redis_host="127.0.0.1"
r = Redis(redis_host, socket_connect_timeout=1) # short timeout for the test
r.ping()
print('connected to redis "{}"'.format(redis_host))
El comando ping()
comprueba la conexión y, si no es válida, generará una excepción.
- Nota: la conexión aún puede fallar después de realizar la prueba, por lo que esto no cubrirá las excepciones de tiempo de espera posteriores.
Como dijiste, la conexión al servidor Redis solo se establece cuando intentas ejecutar un comando en el servidor. Si no desea seguir adelante sin verificar que el servidor está disponible, puede enviar una consulta aleatoria al servidor y verificar la respuesta. Algo como :
try:
response = rs.client_list()
except redis.ConnectionError:
#your error handlig code here
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)