eventio / bbq-bundle
Symfony2 Bundle for Eventio BBQ 消息队列库
Requires
- php: >=5.3.2
- eventio/bbq: dev-master
This package is not auto-updated.
Last update: 2024-09-23 13:48:09 UTC
README
正在进行中,为 Eventio BBQ,PHP 消息队列抽象库的 Symfony2 Bundle。
安装
"require": {
"eventio/bbq-bundle": "dev-master"
}
配置
在 AppKernel.php 中注册该包
public function registerBundles()
{
$bundles = array(
// ...
new \Eventio\BBQBundle\EventioBBQBundle(),
// ...
);
}
按照以下方式在您的 config.yml
中配置每个队列
eventio_bbq:
queues:
queue_id:
type: directory
directory: /tmp/directory
您可以在下面的 queues
中插入任意数量的队列。有关详细配置参考,请参阅下面的队列类型。
使用方法
配置完包和队列后,访问 BBQ 实例并从队列中推送/获取任务
$bbq = $this->get('eventio_bbq'); // Instance of \Eventio\BBQ()
$bbq->pushJob('queue_id', 'Payload');
由于每个队列都作为独立的 Symfony2 服务注册,您可以直接访问它们
$queue = $this->get('eventio_bbq.queue_id'); // Instance of \Eventio\BBQ\Queue\DirectoryQueue();
$queue->pushJob(new StringPayload('Some payload'));
队列类型
DirectoryQueue
type: directory
参数
directory
作为队列存储的目录
RedisTubeQueue
type: predis
参数
key
队列的 Redis 键predis_id
Predis 连接 ID(默认 =default
)config
进一步的队列配置(默认 =array()
)
多个 Redis 服务器
可以在 predis_connections
部分自定义 Predis 配置。
默认配置(当未定义任何内容时)如下。
eventio_bbq:
predis_connections:
default:
params: tcp://127.0.0.1:6379
options: ~
可以在不同的主机下配置两个不同的队列
eventio_bbq:
predis_clients:
host1:
params: tcp://192.168.1.1:6379
host2:
params: tcp://192.168.1.2:6379
queues:
queue1:
predis_id: host1
key: queue1_at_host1
queue2:
predis_id: host2
key: queue2_at_host2
在应用程序中使用这两个队列的方法
$bbq->pushJob('queue1', 'Job to redis server 1, queue "queue1_at_host1"');
$bbq->pushJob('queue2', 'Job to redis server 2, queue "queue2_at_host2"');
主/从复制
params
和 options
下的 predis_clients
部分将直接传递给 \Predis\Client
构造函数。因此,您可以自由配置它们,包括主/从设置
eventio_bbq:
predis_clients:
master_slave:
params: ["tcp://192.168.1.1:6379?alias=master", "tcp://192.168.1.2:6379?alias=slave"]
options: [replication: true]
queues:
replicated_queue:
predis_id: master_slave
key: queue
有关所有可能的 连接参数(=params
)和 客户端选项(=options
)
PheanstalkTubeQueue
type: pheanstalk
参数
tube
作为队列的 pheanstalk tubepheanstalk_id
pheanstalk 连接 ID(默认 =default
)
多个 beanstalkd 服务器
可以在 pheanstalk_connections
部分自定义 Pheanstalk 配置。
默认配置(当未定义任何内容时)如下。
eventio_bbq:
pheanstalk_connections:
default:
host: 127.0.0.1
可以在不同的主机下配置两个不同的队列
eventio_bbq:
pheanstalk_connections:
host1:
host: 192.168.0.1
host2:
host: 192.168.0.2
queues:
queue1:
pheanstalk_id: host1
tube: tube_at_host1
queue2:
pheanstalk_id: host2
tube: tube_at_host2
在应用程序中使用这两个队列的方法很简单
$bbq->pushJob('queue1', 'Job to pheanstalk server 1, tube tube_at_host1');
$bbq->pushJob('queue2', 'Job to pheanstalk server 2, tube tube_at_host2');
贡献
由于该库处于非常初期的阶段,我们非常欢迎您通过以下方式对此项工作做出贡献:
- 修复错误
- 编写新的测试用例
- 实现新的队列类型
- 提供关于代码的想法和评论
许可证
版权所有 Eventio Oy,Ville Mattila,2013
在 MIT 许可证 下发布