123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- include '../vendor/autoload.php';
- use Smf\ConnectionPool\ConnectionPool;
- use Smf\ConnectionPool\Connectors\CoroutineMySQLConnector;
- use Swoole\Coroutine\MySQL;
- go(function () {
- // All MySQL connections: [10, 30]
- $pool = new ConnectionPool(
- [
- 'minActive' => 10,
- 'maxActive' => 30,
- 'maxWaitTime' => 5,
- 'maxIdleTime' => 20,
- 'idleCheckInterval' => 10,
- ],
- new CoroutineMySQLConnector,
- [
- 'host' => '127.0.0.1',
- 'port' => '3306',
- 'user' => 'root',
- 'password' => 'xy123456',
- 'database' => 'mysql',
- 'timeout' => 10,
- 'charset' => 'utf8mb4',
- 'strict_type' => true,
- 'fetch_mode' => true,
- ]
- );
- echo "Initializing connection pool\n";
- $pool->init();
- defer(function () use ($pool) {
- echo "Closing connection pool\n";
- $pool->close();
- });
- echo "Borrowing the connection from pool\n";
- /**@var MySQL $connection */
- $connection = $pool->borrow();
- $status = $connection->query('SHOW STATUS LIKE "Threads_connected"');
- echo "Return the connection to pool as soon as possible\n";
- $pool->return($connection);
- var_dump($status);
- });
|