Время ожидания соединения Redis-py не истекает

#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. Вот в чем проблема. Это не вызывает никаких ошибок, независимо от того, был тайм-аут или нет.