1
0
Fork 0
mirror of synced 2024-07-03 05:31:38 +12:00

revert redis connection pool

This commit is contained in:
Torsten Dittmann 2021-02-26 11:17:17 +01:00
parent 28eed022f6
commit 603f4ab99d
2 changed files with 13 additions and 29 deletions

View file

@ -21,8 +21,6 @@ use Utopia\Config\Config;
use Utopia\Registry\Registry; use Utopia\Registry\Registry;
use Utopia\Swoole\Request as SwooleRequest; use Utopia\Swoole\Request as SwooleRequest;
use PDO as PDONative; use PDO as PDONative;
use Swoole\Database\RedisConfig;
use Swoole\Database\RedisPool;
use Utopia\Abuse\Abuse; use Utopia\Abuse\Abuse;
use Utopia\Abuse\Adapters\TimeLimit; use Utopia\Abuse\Adapters\TimeLimit;
@ -74,30 +72,24 @@ $register->set('db', function () { // Register DB connection
return $pdo; return $pdo;
}); });
$register->set('cache', function () use (&$pool) { // Register cache connection $register->set('cache', function () { // Register cache connection
$config = new RedisConfig(); $redis = new Redis();
$redis->pconnect(App::getEnv('_APP_REDIS_HOST', ''), App::getEnv('_APP_REDIS_PORT', ''));
$user = App::getEnv('_APP_REDIS_USER', ''); $user = App::getEnv('_APP_REDIS_USER', '');
$pass = App::getEnv('_APP_REDIS_PASS', ''); $pass = App::getEnv('_APP_REDIS_PASS', '');
$auth = ''; $auth = [];
if (!empty($user)) { if (!empty($user)) {
$auth = $user; $auth["user"] = $user;
} }
if (!empty($pass)) { if (!empty($pass)) {
$auth += ':' . $pass; $auth["pass"] = $pass;
} }
if (!empty($auth)) { if (!empty($auth)) {
$config->withAuth($auth); $redis->auth($auth);
} }
$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
$config return $redis;
->withHost(App::getEnv('_APP_REDIS_HOST', ''))
->withPort(App::getEnv('_APP_REDIS_PORT', ''));
$pool = new RedisPool($config);
return $pool;
}); });
$server->on('workerStart', function ($server, $workerId) use (&$subscriptions, &$connections, &$register) { $server->on('workerStart', function ($server, $workerId) use (&$subscriptions, &$connections, &$register) {
@ -114,7 +106,7 @@ $server->on('workerStart', function ($server, $workerId) use (&$subscriptions, &
sleep(5); // 5 sec delay between connection attempts sleep(5); // 5 sec delay between connection attempts
} }
$redis = $register->get('cache')->get(); $redis = $register->get('cache');
if ($redis->ping(true)) { if ($redis->ping(true)) {
$attempts = 0; $attempts = 0;
@ -191,7 +183,7 @@ $server->on('open', function (Server $server, Request $request) use (&$connectio
App::setResource('consoleDB', function () use (&$register) { App::setResource('consoleDB', function () use (&$register) {
$consoleDB = new Database(); $consoleDB = new Database();
$consoleDB->setAdapter(new RedisAdapter(new MySQLAdapter($register), $register, true)); // TODO: Add Redis $consoleDB->setAdapter(new MySQLAdapter($register)); // TODO: Add Redis
$consoleDB->setNamespace('app_console'); // Should be replaced with param if we want to have parent projects $consoleDB->setNamespace('app_console'); // Should be replaced with param if we want to have parent projects
$consoleDB->setMocks(Config::getParam('collections', [])); $consoleDB->setMocks(Config::getParam('collections', []));

View file

@ -19,22 +19,16 @@ class Redis extends Adapter
*/ */
protected $adapter; protected $adapter;
/**
* @var bool
*/
protected $isPool;
/** /**
* Redis constructor. * Redis constructor.
* *
* @param Adapter $adapter * @param Adapter $adapter
* @param Registry $register * @param Registry $register
*/ */
public function __construct(Adapter $adapter, Registry $register, $isPool = false) public function __construct(Adapter $adapter, Registry $register)
{ {
$this->register = $register; $this->register = $register;
$this->adapter = $adapter; $this->adapter = $adapter;
$this->isPool = $isPool;
} }
/** /**
@ -267,9 +261,7 @@ class Redis extends Adapter
*/ */
protected function getRedis(): Client protected function getRedis(): Client
{ {
return $this->isPool ? return $this->register->get('cache');
$this->register->get('cache')->get() :
$this->register->get('cache');
} }
/** /**