#python #redis #redis-py
Вопрос:
У меня есть очень простая реализация на python, использующая redis-py для взаимодействия с Redis. В рамках разработки я отключаю redis, чтобы имитировать исключение тайм-аута. Проблема в том, что я устанавливаю тайм-аут на несколько секунд, но соединение просто сидит без тайм-аута.
from redis import StrictRedis
print('Connecting')
redis_instance = StrictRedis(host=settings.REDIS_HOST,
port=settings.REDIS_PORT,
db=settings.REDIS_DB,
socket_connect_timeout=5,
socket_timeout=5,
)
print('Setting key')
redis_instance.set('X','Y')
print('Key SET')
Я вижу, что он переходит к Setting key
сообщению, но не выходит за рамки этого или не выдает тайм-аут.
Есть идеи, что я делаю не так?
Комментарии:
1. @dizzyf, прежде чем что-либо начинать….
Ответ №1:
Если вы выключите redis перед запуском кода. redis-py вызывает исключение сокета ConnectionRefusedError
и redis ConnectionError
.
Вы еще не подключили redis, как могло истечь время подключения?
Комментарии:
1. Вот в чем проблема. Это не вызывает никаких ошибок, независимо от того, был тайм-аут или нет.