项目框架使用think里的workerman
直接使用引用think里的redis 挂了一晚上提示我报错了 send of 53 bytes failed with errno=10054 远程主机强迫关闭了一个现有的连接。
是不是不能用think里的redis
是不是没做redis心跳吧,我现在在写的项目一直都用think-cahce,redis 跟文件都有,挂那一个星期都不会报错
还要心跳的吗,我百度了一下也有可能是反复实例化,大哥你是咋写的
设置一个定时器,定时redis->ping(),比如50秒一次
你可以参考一下,在启动的时候加一个定时器,隔50秒左右去获取一次消息,因为workerman 是常驻内存的,里面的redis链接是一直在保持通讯的,如果不加心跳的话,长时间没消息通讯的话会被路由节点强行断开的 Cache::config($config); if ( $config['default'] === 'redis') { Timer::add(55, function () { Cache::get('ping'); }); }
好,我试试,多谢
是不是没做redis心跳吧,我现在在写的项目一直都用think-cahce,redis 跟文件都有,挂那一个星期都不会报错
还要心跳的吗,我百度了一下也有可能是反复实例化,大哥你是咋写的
设置一个定时器,定时redis->ping(),比如50秒一次
你可以参考一下,在启动的时候加一个定时器,隔50秒左右去获取一次消息,因为workerman 是常驻内存的,里面的redis链接是一直在保持通讯的,如果不加心跳的话,长时间没消息通讯的话会被路由节点强行断开的
Cache::config($config);
if ( $config['default'] === 'redis') {
Timer::add(55, function () {
Cache::get('ping');
});
}
好,我试试,多谢