phpredis---pub/sub订阅超时

来源:互联网 发布:三玻两腔中空玻璃数据 编辑:程序博客网 时间:2024/06/09 19:21
class Welcome {       //订阅    public function subscribe()    {        $redis = new Redis();        $redis->connect('127.0.0.1',6379);        function f($redis, $channel, $message)        {            switch ($channel) {                case 'channel1':                    echo $message;                    break;            }            die;        }        //用下面这行设置的时候没有起作用        // ini_set('default_socket_timeout', '-1');        $redis->subscribe(array('channel1'), 'f');    }    //发布    public function publish()    {        $redis = new Redis();        $redis->connect('127.0.0.1',6379);        $redis = $this->libraryredis->instance();        $redis->publish('channel1', 'hello');    }}

当订阅的时候即:

$welcome = new Welcome();$welcome->subscribe();

报错:

Fatal error: Uncaught exception 'RedisException' with message 'read error on connection'

解决方法:
修改php.ini参数

default_socket_timeout -1

修改这个参数后 命令行 下运行 不会 超时,
但是浏览器运行会报504 gateway time-timeout
这是nginx 响应超时
这时需要设置nginx.conf参数

#这个值以秒为单位,必须大于或者等于0,值越大超时间隔越长fastcgi_send_timeout 300;
0 0