国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

在worker里面連接 redis 連接超時

zhou2021

例如:啟動一個worker程序。處理redis里面數(shù)據(jù)。但是 這個redis一直沒有接收到數(shù)據(jù),redis 就報超時。 過一會有數(shù)據(jù)上報。發(fā)現(xiàn)redis超時了。不在執(zhí)行數(shù)據(jù)了。怎么讓redis 有數(shù)據(jù)處理數(shù)據(jù),報超時 再次連接 處理數(shù)據(jù)。

redis類 那些需要調(diào)整
namespace dg;

use Exception;

class RedisCache
{

private static $redis;
private static $config = array(
    'host' => '127.0.0.1',
    'port' => 6379,

);

public static function setConfig($config = [])
{
    self::$config = $config;
}

private static function init()
{
    $host = self::$config['host'];
    $port = self::$config['port'];

    $redis = new \Redis();

    if (!$redis->pconnect($host, $port)) {
        exit('redis 連接失敗');
    }

    if (isset(self::$config['pass'])) {
        if (!$redis->auth(self::$config['pass'])) {
            exit('redis 密碼錯誤');
        }
    }

    self::$redis = $redis;
}

/**
 * 連接狀態(tài)判斷
 */
private static function ping()
{
    return self::$redis->ping();
}

public static function __callStatic($method, $args)
{
    if (!self::$redis) {
        self::init();
    }

    if (!self::ping()) {
        self::$redis->close();

        self::init();
    }

    return call_user_func_array([self::$redis, $method], $args);
}

}

3601 1 0
1個回答

six

具體報什么錯?
我記得redis擴展會自動重連的啊。
不行你就弄個定時器,定時 ping,免得redis鏈接被關閉。

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??