博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决phpredis 'RedisException' with message 'read error on connection'
阅读量:6264 次
发布时间:2019-06-22

本文共 432 字,大约阅读时间需要 1 分钟。

最近一个后台常驻job通过redis的brpop阻塞读取消息时,设置的超时时间较长

list($key,$row)=$redis->brPop($queue_name,3600); //超时时间为1小时

但是在实际的使用中发现很短时间后就会退出,通过查看error log,发现:'RedisException' with message 'read error on connection' 提示

经过一番折腾,原来发现是php.ini文件中的一个配置项导致:

default_socket_timeout = 60

由于redis扩展也是基于php 的socket方式实现,因此该参数值同样会起作用。

找到了问题就比较好解决了:

1、直接修改php.ini,将其设置为我们想要的值(这个不推荐)

2、在我们的脚本中通过以下方式设置,这样就比较灵活,不对其他脚本产生影响

ini_set('default_socket_timeout', -1);  //不超时

 

 

转载地址:http://lwzpa.baihongyu.com/

你可能感兴趣的文章
Python--私有
查看>>
Ps操作技巧(快捷键大全)
查看>>
你可能并不需要消息队列
查看>>
移动端兼容
查看>>
css3翻书效果
查看>>
[转]通过零拷贝实现有效数据传输
查看>>
Android基于box2d开发弹弓类游戏[二]-------------游戏界面的搭建&移动游戏场景
查看>>
spring mvc 接受数组
查看>>
syslog服务器配置
查看>>
visual studioC#调用MATLAB生成的DLL
查看>>
ArrayList,LinkedList源码解析
查看>>
java推荐书籍及下载(持续更新)
查看>>
解决iframe周围的空白问题 td自适应iframe高度
查看>>
雷达标定
查看>>
[解决]小程序要求的 TLS 版本必须大于等于 1.2
查看>>
jQuery箭头切换图片 - 学习笔记
查看>>
第七周编程总结
查看>>
济南-1031试题解题报告
查看>>
最短路径(迪杰斯特拉算法)- 数据结构和算法64
查看>>
WCF或webservice跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略...
查看>>