diff --git a/src/DatabaseConnectionPoolConfiguration.php b/src/DatabaseConnectionPoolConfiguration.php index fe5f62063455d80dbd1807be97920781871fa9dc..1681fab6da68cca735e740b40819c39f7ca6275b 100644 --- a/src/DatabaseConnectionPoolConfiguration.php +++ b/src/DatabaseConnectionPoolConfiguration.php @@ -20,6 +20,8 @@ readonly class DatabaseConnectionPoolConfiguration #[SensitiveParameter] public string $password, #[SensitiveParameter] + public int $poolSize, + #[SensitiveParameter] public int $port, #[SensitiveParameter] public string $username, diff --git a/src/RedisConnectionPoolConfiguration.php b/src/RedisConnectionPoolConfiguration.php index 9986d37ec34fe6b7c9d6568f7f75a267bfd78a10..3e56da1af42c835a4e81924b8f16f50bcb9cd9dd 100644 --- a/src/RedisConnectionPoolConfiguration.php +++ b/src/RedisConnectionPoolConfiguration.php @@ -16,6 +16,8 @@ readonly class RedisConnectionPoolConfiguration #[SensitiveParameter] public string $password, #[SensitiveParameter] + public int $poolSize, + #[SensitiveParameter] public int $port, #[SensitiveParameter] public string $prefix, diff --git a/src/SingletonProvider/ConfigurationProvider/DatabaseConfigurationProvider.php b/src/SingletonProvider/ConfigurationProvider/DatabaseConfigurationProvider.php index 3442a3ba6f2765ec06bda23582e7519c23ed424e..6312452cf71aade059a3a87d38d4d729212c8dbb 100644 --- a/src/SingletonProvider/ConfigurationProvider/DatabaseConfigurationProvider.php +++ b/src/SingletonProvider/ConfigurationProvider/DatabaseConfigurationProvider.php @@ -20,6 +20,7 @@ use Nette\Schema\Schema; * host: string, * log_queries: bool, * password: string, + * pool_size: int, * port: int, * username: string, * }> @@ -43,6 +44,7 @@ final readonly class DatabaseConfigurationProvider extends ConfigurationProvider 'host' => Expect::string()->min(1)->required(), 'log_queries' => Expect::bool()->required(), 'password' => Expect::string()->required(), + 'pool_size' => Expect::int()->min(1)->required(), 'port' => Expect::int()->min(1)->max(65535)->required(), 'username' => Expect::string()->min(1)->required(), ]); @@ -63,6 +65,7 @@ final readonly class DatabaseConfigurationProvider extends ConfigurationProvider host: $connectionPoolConfiguration->host, logQueries: $connectionPoolConfiguration->log_queries, password: $connectionPoolConfiguration->password, + poolSize: $connectionPoolConfiguration->pool_size, port: $connectionPoolConfiguration->port, username: $connectionPoolConfiguration->username, ), diff --git a/src/SingletonProvider/ConfigurationProvider/RedisConfigurationProvider.php b/src/SingletonProvider/ConfigurationProvider/RedisConfigurationProvider.php index 0261d1275745ab96826ca319285fcdb6b65284ff..fb95a12843822e53c2e044fa25097c8bc1e9a476 100644 --- a/src/SingletonProvider/ConfigurationProvider/RedisConfigurationProvider.php +++ b/src/SingletonProvider/ConfigurationProvider/RedisConfigurationProvider.php @@ -40,6 +40,7 @@ final readonly class RedisConfigurationProvider extends ConfigurationProvider 'db_index' => Expect::int()->min(0)->required(), 'host' => Expect::string()->min(1)->required(), 'password' => Expect::string()->required(), + 'pool_size' => Expect::int()->min(1)->required(), 'port' => Expect::int()->min(1)->max(65535)->required(), 'prefix' => Expect::string()->min(1)->required(), 'timeout' => Expect::int()->min(0)->required(), @@ -59,6 +60,7 @@ final readonly class RedisConfigurationProvider extends ConfigurationProvider dbIndex: $connectionPoolConfiguration->db_index, host: $connectionPoolConfiguration->host, password: $connectionPoolConfiguration->password, + poolSize: $connectionPoolConfiguration->pool_size, port: $connectionPoolConfiguration->port, prefix: $connectionPoolConfiguration->prefix, timeout: $connectionPoolConfiguration->timeout, diff --git a/src/SingletonProvider/DatabaseConnectionPoolRepositoryProvider.php b/src/SingletonProvider/DatabaseConnectionPoolRepositoryProvider.php index 1e461b4dc939f54f9402a725ee60ce8b7a684566..ee16d39ec8930dcc3fa738d12f88ba381849edd5 100644 --- a/src/SingletonProvider/DatabaseConnectionPoolRepositoryProvider.php +++ b/src/SingletonProvider/DatabaseConnectionPoolRepositoryProvider.php @@ -46,10 +46,11 @@ final readonly class DatabaseConnectionPoolRepositoryProvider extends SingletonP PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT, ]) ; - $databaseConnectionPoolRepository->databaseConnectionPool->put( - $name, - new PDOPool($pdoConfig), - ); + + $pdoPool = new PDOPool($pdoConfig, $connectionPoolConfiguration->poolSize); + $pdoPool->fill(); + + $databaseConnectionPoolRepository->databaseConnectionPool->put($name, $pdoPool); } return $databaseConnectionPoolRepository; diff --git a/src/SingletonProvider/RedisConnectionPoolRepositoryProvider.php b/src/SingletonProvider/RedisConnectionPoolRepositoryProvider.php index 48c4a74527920fa698ac271d2f2033c85435a915..7e494f5a457665794bc043d598389dc663802999 100644 --- a/src/SingletonProvider/RedisConnectionPoolRepositoryProvider.php +++ b/src/SingletonProvider/RedisConnectionPoolRepositoryProvider.php @@ -37,10 +37,11 @@ final readonly class RedisConnectionPoolRepositoryProvider extends SingletonProv ->withDbIndex($connectionPoolConfiguration->dbIndex) ->withTimeout($connectionPoolConfiguration->timeout) ; - $redisConnectionPoolRepository->redisConnectionPool->put( - $name, - new RedisPool($redisConfig), - ); + + $redisPool = new RedisPool($redisConfig, $connectionPoolConfiguration->poolSize); + $redisPool->fill(); + + $redisConnectionPoolRepository->redisConnectionPool->put($name, $redisPool); } return $redisConnectionPoolRepository;