crowdstar / vertica-swoole-adapter
为基于Swoole的应用程序提供与HP Vertica数据库通信的数据库层。
1.0.0
2020-08-25 22:12 UTC
Requires
- php: >=7.1
- ext-swoole: >=4.4
- crowdstar/exponential-backoff: ~3.0.0
- skatrych/vertica-php-adapter: @dev
Requires (Dev)
- phpunit/phpunit: ~7.0
- psr/log: ^1.1
- swoole/ide-helper: @dev
Suggests
- psr/log: Allow to log errors for debugging purpose.
This package is auto-updated.
Last update: 2024-09-22 06:08:05 UTC
README
摘要
此库为基于Swoole的应用程序提供与HP Vertica数据库通信的数据库层。
支持的功能
- 连接池。
- 自动重连。
- 指数退避重试(对于失败的操作)。
- 支持日志记录。
Vertica连接是通过包skatrych/vertica-php-adapter实现的,该包使用ODBC实现。它不是协程友好的,并且仅在阻塞模式下工作。
此包是从我们在Glu Mobile的工作中派生出来的。它已被用于与Vertica 7.2.0和9.3.0服务器通信的一个内部微服务中,并且运行了数月。
安装
composer require crowdstar/vertica-swoole-adapter
示例用法
以下示例创建一个Vertica连接池,从池中获取连接,执行数据库查询,然后将连接放回池中
<?php use CrowdStar\VerticaSwooleAdapter\VerticaAdapter; use CrowdStar\VerticaSwooleAdapter\VerticaProxy; use Swoole\ConnectionPool; $pool = new ConnectionPool( function () { return new VerticaAdapter($config); }, ConnectionPool::DEFAULT_SIZE, VerticaProxy::class ); /** @var VerticaAdapter $conn */ $conn = $pool->get(); $data = $conn->fetchAll($conn->query($sql)) ?: []; $pool->put($conn); ?>
有关更多示例,请检查examples/文件夹下的源代码。要运行示例,您需要首先运行以下两个命令来安装Composer包和启动Docker容器
docker run --rm -v $(pwd):/var/www -ti phpswoole/swoole:latest-dev composer update -n docker-compose up --build -d # or "docker-compose up -d" if you don't need to rebuild the image.
完成后,您可以使用以下命令运行示例
docker exec -ti $(docker ps -qf "name=app") ./examples/example.php docker exec -ti $(docker ps -qf "name=app") ./examples/benchmark.php docker exec -ti $(docker ps -qf "name=app") ./examples/test-coroutine-capability.php