Fix REDIS HAS GONE AWAY issues.

This commit is contained in:
Greyscale 2020-12-06 19:22:30 +01:00
parent 744956888b
commit 5a1207271e
3 changed files with 21 additions and 10 deletions

View file

@ -266,7 +266,7 @@ class App
// If Redis is configured, add it to the pool.
if ($redis->isAvailable()) {
$caches[] = new RedisCachePool($redis);
$caches[] = new RedisCachePool($redis->getUnderlyingRedis());
}
$caches[] = new ArrayCachePool();
@ -298,10 +298,6 @@ class App
);
});
$container->set(\Redis::class, function (Redis $redis) {
return $redis;
});
$container->set(Laminator::class, function (ConfigurationService $configurationService, Databases $databases) {
return new Laminator(
APP_ROOT,

View file

@ -4,10 +4,10 @@ namespace Benzine\Redis\Lua;
abstract class AbstractLuaExtension
{
protected \Redis $redis;
protected Redis $redis;
protected ?string $hash = null;
public function __construct(\Redis $redis)
public function __construct(Redis $redis)
{
$this->redis = $redis;
}
@ -29,9 +29,9 @@ abstract class AbstractLuaExtension
public function load(): void
{
if (!$this->hash) {
$exists = $this->redis->script('exists', $this->getScript());
$exists = $this->getUnderlyingRedis()->script('exists', $this->getScript());
if (!$exists[0]) {
$this->hash = $this->redis->script('load', $this->getScript());
$this->hash = $this->getUnderlyingRedis()->script('load', $this->getScript());
}
}
//printf("Loaded \"%s\" as \"%s\"\n", $this->getFunctionNames()[0], $this->hash);

View file

@ -50,10 +50,25 @@ class Redis
}
}
/**
* @return \Redis
*/
public function getUnderlyingRedis(): \Redis
{
return $this->redis;
}
/**
* @return Logger
*/
public function getLogger(): Logger
{
return $this->logger;
}
public function isAvailable(): bool
{
try {
$this->redis->ping('am I human?');
$this->ping('am I human?');
return true;
} catch (\RedisException $redisException) {