我如何在PHP中使用tarantool队列?

时间:2016-03-24 12:12:07

标签: php queue php-5.6 tarantool

有一个php库https://github.com/tarantool-php/queue,但它需要ext-tarantool,所以是否有任何活动的可维护库纯粹用php编写,这允许我们在php 5.6或7中使用tarantool队列? 或者是否有任何现成的centos包为php5.6安装ext-tarantool? yum install php-tarantool发出以下不兼容错误

Error: Package: php-tarantool-0.1.0-19.el6.x86_64 (tarantool_1_6)
          Requires: php(zend-abi) = 20090626
          Installed: php-common-5.6.19-1.el6.remi.x86_64 (@remi-php56)
              php(zend-abi) = 20131226-64

1 个答案:

答案 0 :(得分:1)

我是tarantool-php / queue库的作者。我计划将来添加对the pure PHP Tarantool client的支持,它还没有。填写免费的票据;)

同时,作为一种变通方法,您可以使用Tarantool\Client类来装饰\Tarantool,例如:

use Tarantool\Client;

class Tarantool
{
    private $client;

    public function __construct(Client $client)
    {
        $this->client = $client;
    }

    public function call($functionName, array $args = null)
    {
        $result = $this->client->call($functionName, $args ? $args : []);

        return $result->getData();
    }
}

然后像这样使用它:

use Tarantool\Client;
use Tarantool\Connection\SocketConnection;
use Tarantool\Packer\PurePacker;
use Tarantool\Queue\Queue;

$client = new Client(new SocketConnection(), new PurePacker());
$client = new Tarantool($client);

$queue = new Queue($client, 'foobar');