xxbutoo
V2EX  ›  PHP

phpRedis 的订阅模式疑问

  •  
  •   xxbutoo · Feb 17, 2021 · 2155 views
    This topic created in 1933 days ago, the information mentioned may be changed or developed.

    按照文档上的 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 replies    2021-02-17 21:53:05 +08:00
    ferock
        1
    ferock  
    PRO
       Feb 17, 2021 via iPhone
    废话啊,fpm 模式下怎么可能不 timeout ? nginx 也会 timeout
    ferock
        2
    ferock  
    PRO
       Feb 17, 2021 via iPhone
    你想玩这个只有 cli 模式下
    2kCS5c0b0ITXE5k2
        3
    2kCS5c0b0ITXE5k2  
       Feb 17, 2021
    请使用 php cli
    xxbutoo
        4
    xxbutoo  
    OP
       Feb 17, 2021
    @ferock 是 哦是哦是哦是哦!
    我搞傻了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4557 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 01:03 · PVG 09:03 · LAX 18:03 · JFK 21:03
    ♥ Do have faith in what you're doing.