l-queue / l-client
PHP中的nats或redis队列客户端
v0.0.6
2018-01-04 03:19 UTC
Requires
- phpunit/phpunit: 6.5.5
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