l-queue/l-client

PHP中的nats或redis队列客户端

v0.0.6 2018-01-04 03:19 UTC

This package is auto-updated.

Last update: 2024-09-28 18:16:08 UTC


README

PHP中的nats或redis队列客户端

安装

composer require l-queue/l-client

基本用法

$natsClient = \LQueue\Factory::getQueue('nats');
$natsClient->driver();
$natsClient->publish('FOO', 'bar', 11);

Nats客户端

NATS是一个开源的云原生消息系统。除了作为Apcera平台“神经系统”的功能外,百度、西门子、VMware、HTC和爱立信等公司也依赖NATS的高性能和健壮的消息功能。

Nats队列

这个库支持发布、请求和订阅功能。

pub

$natsClient = \LQueue\Factory::getQueue('nats');
$natsClient->driver();
$natsClient->publish('FOO', 'bar', 11);
$natsClient->close();

subscribe

$natsClient = \LQueue\Factory::getQueue('nats');
$natsClient->driver();
$natsClient->subscribe('FOO', function ($response) {
    printf("Data: %s\r\n", $response->getBody());
});
$natsClient->close();

pubsub

$natsClient = \LQueue\Factory::getQueue('nats');
$natsClient->driver();
$natsClient->subscribe('FOO', function ($response) {
    printf("Data: %s\r\n", $response->getBody());
});

$natsClient->publish('FOO', 'bar');

// Wait for 1 message.
$natsClient->wait(1);
$natsClient->close();

request

$natsClient = \LQueue\Factory::getQueue('nats');
// set username and password when you config the nats
$natsClient->getConnectOption()->setUser('derek')->setPass('T0pS3cr3t')->setPort(4242);
$natsClient->driver();
$sid = $natsClient->subscribe(
    'foo',
    function ($response) {
        $response->reply('Reply: Hello, ' . $response->getBody() . ' ^_^!');
    }
);

$natsClient->request(
    'foo',
    'bar',
    function ($response) {
        echo $response->getBody();
    }
);
$natsClient->close();

Nats选项

配置一些参数

用户名和密码

$natsClient->getConnectOption()->setUser('derek')->setPass('T0pS3cr3t')

主机端口

$natsClient->getConnectOption()->setHost('127.0.0.1')->setPort(4242);

超时

// wait for 10s,then close the connection
$natsClient->getConnectOption()->setTimeout(10)

Redis队列客户端

仅封装了一些redis函数。

Redis队列

publish

$redisClient = \LQueue\Factory::getQueue('redis');
$option = $redisClient->getConnectOption()->setPass('123456');
$redisClient->driver();
$redisClient->publish('FOO', 'bar');
$redisClient->close();

使用lpush进入队列

$redisClient = \LQueue\Factory::getQueue('redis');
$option = $redisClient->getConnectOption()->setPass('123456');
$redisClient->driver();
$redisClient->enQueue('FOO', 'bar');
$redisClient->close();

Redis选项

配置一些参数

密码

$redisClient = \LQueue\Factory::getQueue('redis');
$option = $redisClient->getConnectOption()->setPass('123456');

主机端口

$redisClient->getConnectOption()->setHost('127.0.0.1')->setPort(4242);

超时

// wait for 10s,then close the connection
$redisClient->getConnectOption()->setTimeout(10)

许可证

MIT