starcode-krasnodar / yii2-amqp
此包最新版本(2.1.0)没有可用的许可证信息。
Yii2 的 AMQP 协议扩展
2.1.0
2016-08-29 13:37 UTC
Requires
- php-amqplib/php-amqplib: 2.5.*
- yiisoft/yii2: *
README
用于与 AMQP 协议一起工作的 Yii2 扩展
安装
通过 composer
composer require "starcode/yii2-amqp:2.*"
或添加 composer.json
{ "require": { "starcode/yii2-amqp": "2.*" } }
配置
创建 amqp 组件配置
[ 'components' => [ 'amqp' => [ 'class' => 'starcode\amqp\components\Connection', 'host' => 'localhost', 'user' => 'guest', 'password' => 'guest', 'connectionOptions' => [ 'vhost' => '/', ], 'queuesConfig' => [ 'email' => [ 'queue' => 'email', 'durable' => true, 'auto_delete' => false, ], 'logs' => [ 'queue' => 'logs', 'durable' => true, 'auto_delete' => false, ], ], ], ], ];
用法
发布消息。
// get queue object $queue = Yii::$app->get('amqp')->getQueue('email'); // create message object $message = new Message('my message', ['delivery_mode' => 2]); // publish message $queue->publish($message);
监听消息
// get queue object $queue = Yii::$app->get('amqp')->getQueue('email'); // callback listener function $callback = function($message) { echo $message->body; // acknowledge message $channel = $msg->delivery_info['channel']; $channel->basic_ack($msg->delivery_info['delivery_tag']); }; $queue->consume([ 'callback' => $callback, ]); $channel = $queue->getChannel(); while (count($channel->callbacks)) { $channel->wait(); }