PHP中使用AMQP消息队列
2013-08-09 11:07
537 查看
入队列:
<?php
//连接RabbitMQ
$conn_args = array( 'host'=>'localhost' , 'port'=> '5672', 'login'=>'guest' ,
'password'=> 'guest','vhost' =>'/');
$conn = new AMQPConnection($conn_args);
$conn->connect();
//创建exchange名称和类型
$channel = new AMQPChannel($conn);
$ex = new AMQPExchange($channel);
$ex->setName('direct_exchange_name');
$ex->setType(AMQP_EX_TYPE_DIRECT);
$ex->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$ex->declare();
//创建queue名称,使用exchange,绑定routingkey
$q = new AMQPQueue($channel);
$q->setName('queue_name');
$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$q->declare();
$q->bind('direct_exchange_name', 'routingkey_name');
//消息发布
$channel->startTransaction();
$message = json_encode(array('Hello
World!','DIRECT'));
//delivery_mode
为2表示持久化,1非持久化
$ex->publish($message, 'routingkey_name',AMQP_NOPARAM,array('delivery_mode'=>2,'priority'=>9));
$channel->commitTransaction();
$conn->disconnect();
?>
取队列:
<?php
//连接RabbitMQ
$conn_args = array( 'host'=>'localhost' , 'port'=> '5672', 'login'=>'guest' , 'password'=> 'guest','vhost' =>'/');
$conn = new AMQPConnection($conn_args);
$conn->connect();
//设置queue名称,使用exchange,绑定routingkey
$channel = new AMQPChannel($conn);
$q = new AMQPQueue($channel);
$q->setName('queue_name');
$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$q->declare();
$q->bind('direct_exchange_name', 'routingkey_name');
//消息获取
$messages = $q->get(AMQP_AUTOACK) ;
if ($messages){
var_dump(json_d
ecode($messages->getBody(), true ));
}
$conn->disconnect();
?>
<?php
//连接RabbitMQ
$conn_args = array( 'host'=>'localhost' , 'port'=> '5672', 'login'=>'guest' ,
'password'=> 'guest','vhost' =>'/');
$conn = new AMQPConnection($conn_args);
$conn->connect();
//创建exchange名称和类型
$channel = new AMQPChannel($conn);
$ex = new AMQPExchange($channel);
$ex->setName('direct_exchange_name');
$ex->setType(AMQP_EX_TYPE_DIRECT);
$ex->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$ex->declare();
//创建queue名称,使用exchange,绑定routingkey
$q = new AMQPQueue($channel);
$q->setName('queue_name');
$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$q->declare();
$q->bind('direct_exchange_name', 'routingkey_name');
//消息发布
$channel->startTransaction();
$message = json_encode(array('Hello
World!','DIRECT'));
//delivery_mode
为2表示持久化,1非持久化
$ex->publish($message, 'routingkey_name',AMQP_NOPARAM,array('delivery_mode'=>2,'priority'=>9));
$channel->commitTransaction();
$conn->disconnect();
?>
取队列:
<?php
//连接RabbitMQ
$conn_args = array( 'host'=>'localhost' , 'port'=> '5672', 'login'=>'guest' , 'password'=> 'guest','vhost' =>'/');
$conn = new AMQPConnection($conn_args);
$conn->connect();
//设置queue名称,使用exchange,绑定routingkey
$channel = new AMQPChannel($conn);
$q = new AMQPQueue($channel);
$q->setName('queue_name');
$q->setFlags(AMQP_DURABLE | AMQP_AUTODELETE);
$q->declare();
$q->bind('direct_exchange_name', 'routingkey_name');
//消息获取
$messages = $q->get(AMQP_AUTOACK) ;
if ($messages){
var_dump(json_d
ecode($messages->getBody(), true ));
}
$conn->disconnect();
?>
相关文章推荐
- PHP中使用AMQP消息队列|LNMP
- PHP消息队列httpsqs安装与使用无错版
- 使用Redis+php-resque实现消息队列
- 基于PHP使用rabbitmq实现消息队列
- PHP AMQP消息队列安装配置
- php消息队列MemcacheQ 安装与使用
- PHP的轻量消息队列php-resque使用说明
- PHP消息队列httpsqs安装与使用无错版
- PHP下使用Redis消息队列发布微博
- PHP中使用ActiveMQ实现消息队列
- (五)RabbitMQ消息队列-安装amqp扩展并订阅/发布Demo(PHP版)
- 使用 PHP 消息队列实现 Android 与 Web 通信
- [资源]PHP使用消息队列
- 使用PHP访问RabbitMQ消息队列的方法示例
- (五)RabbitMQ消息队列-安装amqp扩展并订阅/发布Demo(PHP版)
- php使用redis作为消息队列
- PHP的轻量消息队列php-resque使用说明
- PHP的轻量消息队列php-resque使用说明
- PHP下使用Redis消息队列发布微博(复制)
- PHP的轻量消息队列php-resque使用说明