V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xxbutoo
V2EX  ›  PHP

phpRedis 的订阅模式疑问

  •  
  •   xxbutoo · 2021-02-17 20:06:02 +08:00 · 1590 次点击
    这是一个创建于 1402 天前的主题,其中的信息可能已经有所发展或是发生改变。

    按照文档上的 demo https://github.com/phpredis/phpredis#connect-open

    function f($redis, $chan, $msg) {
    	switch($chan) {
    		case 'chan-1':
    			...
    			break;
    
    		case 'chan-2':
    			...
    			break;
    
    		case 'chan-2':
    			...
    			break;
    	}
    }
    
    $redis->subscribe(['chan-1', 'chan-2', 'chan-3'], 'f'); // subscribe to 3 chans```
    
    但是发布以后 就一直没有返回值了。等了一会后就会抛出 read error on connection 异常
    
     查了资料 subscribe 是阻塞模式 不会有返回值
     
     于是我设置了
    

    // ini_set('default_socket_timeout', -1);

    // $redis->setOption($redis::OPT_READ_TIMEOUT, -1);

    
    执行后返回 502 了   脑瓜疼 cgi 和 nginx 又断开连接了。。
    4 条回复    2021-02-17 21:53:05 +08:00
    ferock
        1
    ferock  
       2021-02-17 21:28:47 +08:00 via iPhone
    废话啊,fpm 模式下怎么可能不 timeout ? nginx 也会 timeout
    ferock
        2
    ferock  
       2021-02-17 21:32:15 +08:00 via iPhone
    你想玩这个只有 cli 模式下
    2kCS5c0b0ITXE5k2
        3
    2kCS5c0b0ITXE5k2  
       2021-02-17 21:42:44 +08:00
    请使用 php cli
    xxbutoo
        4
    xxbutoo  
    OP
       2021-02-17 21:53:05 +08:00
    @ferock 是 哦是哦是哦是哦!
    我搞傻了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2184 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:11 · PVG 00:11 · LAX 08:11 · JFK 11:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.