exs/silex-rabbitmq-provider

Silex2的Rabbitmq消息提供者包

dev-master / 1.0.x-dev 2015-07-23 17:05 UTC

This package is auto-updated.

Last update: 2024-08-29 04:04:55 UTC


README

这是一个非常简单的提供者,用于从silex 2.x应用程序中读取(消费)/写入(发布)到rabbitmq。

在Silex项目中安装EXS-silex-rabbitmq-provider

安装过程实际上非常简单。使用Composer设置Silex项目。

一旦新项目设置完成,打开composer.json文件,并将exs/silex-rabbitmq-provider添加为依赖项

//composer.json
//...
"require": {
        //other bundles
        "exs/silex-rabbitmq-provider": "@dev"

或者,您也可以通过命令行添加它

$ composer.phar require exs/silex-rabbitmq-provider ~1.0@dev

保存文件,并通过命令行使用composer更新项目

php composer.phar update

Composer将现在更新所有依赖项,您应该在列表中看到我们的包

  - Installing exs/silex-rabbitmq-provider (dev-master 463eb20)
    Cloning 463eb2081e7205e7556f6f65224c6ba9631e070a

更新app.php以包含EXS-silex-rabbitmq-provider提供者

//app.php
//...
$app->register(new \EXS\RabbitmqProvider\Providers\Services\RabbitmqProvider());

在config.php中更新您的rabbitmq连接和环境

//...
// Rabbit MQ connection
$app['rabbit.connections'] = array(
    'default' => array(
        'host' => 'localhost',
        'port' => 5672,
        'user' => 'REPLACE_YOUR_USER_NAME',
        'password' => 'REPLACE_YOUR_PASSWORD',
        'vhost' => 'REPLACE_YOUR_VHOST_NAME'
    )
);

// rabbitmq provider environment
$app['exs.rabbitmq.env'] = array(        
    'exchange' => 'REPLACE_EXCHANGE_NAME',
    'type' => 'REPLACE_EXCHANGE_TYPE',
    'queue' => 'REPLACE_QUEUE_NAME',
    'key' => 'REPLACE_ROUTING_KEY_NAME' 
 );
//...

使用方法

向新的交换队列发布消息

//...
use EXS\RabbitmqProvider\Services\PostmanService;

$postman = new PostmanService();

//Publish messages to the new exchange queue
$postman->publish($YOUR_MESSAGE_HERE, false);

//Publish messages to the existing exchange queue by other rabbitmq bundle
$postman->publish($YOUR_MESSAGE_HERE);
or 
$postman->publish($YOUR_MESSAGE_HERE, true);
// setting isDeclared parameter to true will declare the new exchange queue if it doesn't exist.
//...

从队列中消费消息

//...
use EXS\RabbitmqProvider\Services\ConsumerService;

$consumer = new ConsumerService();

// Get all messages from the queue
$messages = $this->consumerService->consumeAll();
// Get 1000 messages from the queue
$messages = $this->consumerService->consumeWithLimit(1000);

// Get all messages from the existing exchange queue by other rabbitmq bundle
$messages = $this->consumerService->consumeAll(false);
or
// Get 1000 messages from the new echange queue
$messages = $this->consumerService->consumeWithLimit(1000, false);
// setting isDeclared parameter to true will declare the new exchange queue if it doesn't exist
//...

现在您可以使用rabbitmq发布和消费消息。

注意

此提供者不支持多个交换或队列。

贡献

欢迎任何人和每个人贡献。

如果您有任何问题或建议,请告诉我们