使用redis插件的時(shí)候 開發(fā)時(shí) 有時(shí)候刷新會(huì)出現(xiàn)這個(gè)
Redis::get(): send of 28 bytes failed with errno=32 Broken pipe
start.php 重啟就好了 什么問題呢
哪個(gè)redis插件?
阿里云好像會(huì)自動(dòng)清理長時(shí)間不通訊的redis連接,導(dǎo)致下次使用的時(shí)候出現(xiàn)異常。稍等發(fā)你一段代碼,加個(gè)定時(shí)器
vendor/workerman/webman-framework/src/support/Redis.php 改成這樣試下,
注意 instance()
和 __callStatic
方法有改動(dòng)
class Redis
{
/**
* @var RedisManager
*/
protected static $_instance = null;
/**
* @return RedisManager
*/
public static function instance()
{
if (!static::$_instance) {
$config = config('redis');
static::$_instance = new RedisManager('', 'phpredis', $config);
}
return static::$_instance;
}
/**
* @param string $name
* @return \Illuminate\Redis\Connections\Connection
*/
public static function connection($name = 'default')
{
static $timers = [];
$connection = static::instance()->connection($name);
if (!isset($timers[$name])) {
$timers[$name] = Timer::add(55, function() use ($connection) {
$connection->get('ping');
});
}
return $connection;
}
/**
* @param $name
* @param $arguments
* @return mixed
*/
public static function __callStatic($name, $arguments)
{
return static::connection('default')->{$name}(... $arguments);
}
}
class Redis
{
/**
* @var RedisManager
*/
protected static $_instance = null;
/**
* @return RedisManager
*/
public static function instance()
{
if (!static::$_instance) {
$config = config('redis');
static::$_instance = new RedisManager('', 'phpredis', $config);
}
return static::$_instance;
}
/**
* @param string $name
* @return \Illuminate\Redis\Connections\Connection
*/
public static function connection($name = 'default')
{
return static::instance()->connection($name);
}
/**
* @param $name
* @param $arguments
* @return mixed
*/
public static function __callStatic($name, $arguments)
{
return static::instance()->connection('default')->{$name}(... $arguments);
}
}