Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

资源池

License Php Version Latest Stable Version

资源池使用在 常住进程的服务 中才有用。比如用 swoole/workman 创建的应用

使用池可实现 数据库连接池、redis连接池等,减少对服务的过多的连接/断开带来的额外资源消耗。

  • 基于swoole的实现

本仓库主要是做一些关于连接池的基础接口方法的抽象定义,并没有完整具体的实现。

具体的实现请查看: https://github.com/swokit/connection-pool.git

项目地址

安装

  • 使用 composer require toolkit/pool
  • 使用 composer.json
"toolkit/pool": "dev-master"

然后执行: composer update

  • 直接拉取
git clone https://git.oschina.net/inhere/php-resource-pool.git // git@osc
git clone https://github.com/inhere/php-resource-pool.git // github

使用

use Toolkit\Pool\Raw\ResourcePool;

$rpl = new ResourcePool([
    'initSize' => 2,
    'maxSize' => 2,
    'driverOptions' => [

    ],
]);

$rpl->setCreator(function () {
    $obj = new \stdClass();
    $obj->name = 'test';

    return $obj;
})
    ->setDestroyer(function ($obj) {
    echo "call resource destroyer.\n";
});

var_dump($rpl);

$obj1 = $rpl->get();
$obj2 = $rpl->get();
$obj3 = $rpl->get();

var_dump($obj1, $obj2, $obj3,$rpl);

$rpl->put($obj1);
$rpl->put($obj2);

var_dump($rpl);

$rpl->call(function ($obj) {
   echo " $obj->name\n";
});

var_dump($rpl);

License

MIT

About

A simple resource pool library of the php

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages