redis ConnectionResetError: [Errno 104] Connection reset by peer

链接空闲导致redis ConnectionResetError

在爬取京东商品评论时,开始我开启了redis_pipeline,所以没有出现redis connection reset问题,后来感觉没必要就关闭了redis_pipeline,就出现了redis ConnectionResetError: [Errno 104] Connection reset by peer,爬取一段时间后就会出现这个问题。

原因很好理解,一个商品如果有100页评论,每爬取一个商品sku才需要读取一次redis,所以有时候间隔很长,redis链接断开了。开始我设置了超时120和超时重试并且开启了health_check_interval,没有作用,看了下源码,发现有个socket_keepalive_options,开启试试吧。

#自定义的redis参数(连接超时之类的)
REDIS_PARAMS  = {    
    'socket_timeout': 10,
    'socket_connect_timeout': 10,
    'retry_on_timeout': True,
    'health_check_interval': 10,
    'socket_keepalive_options': True
    }

出现这种问题一般都是网络问题,或者自己代码不合理。

发表评论

邮箱地址不会被公开。 必填项已用*标注