This commit is contained in:
2021-01-04 16:03:10 +08:00
parent c0104018d3
commit 308d06fd0d
2 changed files with 22 additions and 7 deletions
+4
View File
@@ -7,6 +7,7 @@ namespace Database;
use Exception;
use Snowflake\Abstracts\Providers;
use Snowflake\Application;
use Snowflake\Event;
use Snowflake\Exception\ConfigException;
use Snowflake\Snowflake;
use Snowflake\Abstracts\Config;
@@ -26,6 +27,9 @@ class DatabasesProviders extends Providers
public function onImport(Application $application)
{
$application->set('db', $this);
$event = Snowflake::app()->getEvent();
$event->on(Event::SERVER_WORKER_START, [$this, 'createPool']);
}
+18 -7
View File
@@ -38,8 +38,25 @@ class Redis extends Component
$event = Snowflake::app()->event;
$event->on(Event::RELEASE_ALL, [$this, 'destroy']);
$event->on(Event::EVENT_AFTER_REQUEST, [$this, 'release']);
$event->on(Event::SERVER_WORKER_START, [$this, 'createPool']);
}
/**
* @throws ConfigException
*/
public function createPool()
{
$connections = Snowflake::app()->pool->redis;
$config = $this->get_config();
$name = $config['host'] . ':' . $config['prefix'] . ':' . $config['databases'];
$connections->initConnections('redis:' . $name, true);
$connections->setLength(env('REDIS.POOL_LENGTH', 100));
}
/**
* @param $name
* @param $arguments
@@ -117,13 +134,7 @@ SCRIPT;
{
$connections = Snowflake::app()->pool->redis;
$config = $this->get_config();
$name = $config['host'] . ':' . $config['prefix'] . ':' . $config['databases'];
$connections->initConnections('redis:' . $name, true);
$connections->setLength(env('REDIS.POOL_LENGTH', 100));
$client = $connections->getConnection($config, true);
$client = $connections->getConnection($this->get_config(), true);
if (!($client instanceof \Redis)) {
throw new Exception('Redis connections more.');
}