crowdstar/vertica-swoole-adapter

为基于Swoole的应用程序提供与HP Vertica数据库通信的数据库层。

1.0.0 2020-08-25 22:12 UTC

This package is auto-updated.

Last update: 2024-09-22 06:08:05 UTC


README

Tests Latest Stable Version Latest Unstable Version License

摘要

此库为基于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