This can be tested by setting CONFIG SET timeout 1 in Redis, then running:
from time import sleep
from rb import Cluster
cluster = Cluster({0:{'host': '127.0.0.1', 'port': 6379}})
with cluster.map() as c:
c.get('foo')
sleep(2)
with cluster.map() as c:
c.get('foo')
Yells with redis.exceptions.ConnectionError: Error while trying to write requests to redis..
The problem is the first poll on the socket is a close event before any data has been written to the socket.
We should detect this and attempt to reconnect.
This can be tested by setting
CONFIG SET timeout 1in Redis, then running:Yells with
redis.exceptions.ConnectionError: Error while trying to write requests to redis..The problem is the first poll on the socket is a
closeevent before any data has been written to the socket.We should detect this and attempt to reconnect.