例如:啟動一個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);
}
}