yoye/redis-broker
Composer 安装命令:
composer require yoye/redis-broker
包简介
PHP Redis message broker
README 文档
README
PHP Redis message broker
Installation
The recommended way to install redis-broker is through Composer
composer require "yoye/redis-broker" "dev-master"
Usage
<?php // broker.php require_once __DIR__ . '/../vendor/autoload.php'; use Symfony\Component\EventDispatcher\EventDispatcher; use Yoye\Broker\Adapter\PhpRedisAdapter; use Yoye\Broker\Broker; use Yoye\Broker\Event\BrokerEvents; use Yoye\Broker\Event\MessageEvent; $client = new Redis(); $client->connect('127.0.0.1', 6379, 0); $adapter = new PhpRedisAdapter($client); $dispatcher = new EventDispatcher(); $dispatcher->addListener(BrokerEvents::MESSAGE_RECEIVED, function(MessageEvent $event) { $channel = $event->getChannel(); $message = $event->getMessage(); var_dump($channel, $message); // The event must be marked has done // otherwise the listener will be called indefinitely $event->setDone(); }); $broker = new Broker($adapter, ['foo.channel', 'bar.channel'], $dispatcher); $broker->run();
Now type in your console
php broker.php
On another console type redis-cli LPUSH foo.channel 'This is a message' or redis-cli LPUSH bar.channel 'This is a message', on your first console you should see:
string(11) "foo.channel"
string(17) "This is a message"
You can also set a repetition limit's, if this limit is reached, a new event will be launched.
$client = new Redis(); $client->connect('127.0.0.1', 6379, 0); $adapter = new PhpRedisAdapter($client); $dispatcher = new EventDispatcher(); $dispatcher->addListener(BrokerEvents::MESSAGE_RECEIVED, function(MessageEvent $event) { var_dump($event->getMessage()); if ($event->getMessage() === 'FooBar') { $event->setDone(); } }); $dispatcher->addListener(BrokerEvents::NESTING_LIMIT, function(MessageEvent $event) { var_dump('Last call for: ' . $event->getMessage()); }); $broker = new Broker($adapter, ['foo.channel', 'bar.channel'], $dispatcher); $broker->setNestingLimit(3); $broker->run();
Now if you type LPUSH foo.channel 'This is a message' 'FooBar', you should see:
string(17) "This is a message"
string(6) "FooBar"
string(17) "This is a message"
string(17) "This is a message"
string(32) "Last call for: This is a message"
统计信息
- 总下载量: 44.13k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-01-10