富士康|Windows环境PHP如何使用RabbitMQ?( 二 )


这点是需要注意的 , 你们在网上看的别的兄弟写的教程 , 可能大家没有指出这点 。
做完以上动作 , 至此扩展安装完毕 。 就是这么简单 。
PHP里头如何使用RabbitMQ?别想太多 , 我贴代码 。 你们记住死的就行 , 其他的直接套 。

在上面我贴出来的图里头 , 扩展包里头有个benchmark.php 文件 , 这个是一个测试用文件 , 基本上你可以把它当成例子来使用 , 我接下来会写一个简单的示例 , 并在示例里头做好注释讲解 , 以便你更好的理解 。

<?php
//这里$config 变量 是我这边本地环境的MQ配置 。 你在使用的过程中 , 可以赵这个格式 , 调整成你自己的 。
$config= [
'host'=>'192.168.10.201'
'port'=>'5672'
'vhost'=>'/'
'login'=>'admin'
'password'=>'admin'

;

//这里用try 包裹 , 处理异常 , 因为这个程序执行起来之后 , 是一个长时进程 , 所以做好错误处理很有必要 。 我这里写的略简单 , 不要照抄 , 最好根据各自实际情况进行处理
try{
//这里是连接MQ
$conn=newAMQPConnection($config);
$res=$conn->connect();

//这里是从连接里头得到一个信道 , 你别管这个玩意儿是啥 , 你就这么写就好 , 其他的先不管 。 以后你熟悉了再说 。
$ch=newAMQPChannel($conn);

//通过信道创建一个交换机 , 这里要注意 , 交换机名称问题不大 , 但是type和队列名称需要重点注意 , 不要搞错了 , 我这里写的是消费者 , 生成者大家有兴趣自行完成 。
$exchange=newAMQPExchange($ch);
//type是交换机类型 , 一般你按照我写的这个写 , 不用改
$exchange->setType(AMQP_EX_TYPE_DIRECT);
//这里是flag标记 , 你直接这么写就好 ,
$exchange->setFlags(AMQP_AUTODELETE);
$exchange->setName('this_is_exchange');//这是交换机名称 , 这里你可以动态创建 , 也可以写死 。 建议写死 。
$exchange->declareExchange();//声明交换机 ,
$q=newAMQPQueue($ch);//创建队列
$q->setFlags(AMQP_AUTODELETE);//这里是flag标记 , 你直接这么写就好 ,
$q->declareQueue();//声明队列
$q->setName(\"1SonPurchaseOrderStatus\");//设置队列名称
$q->bind($exchange->getName());//给队列绑定交换机 。
//这个consume 就是消费消息啦 ,
$q->consume(
function($envelope$queue)  {
var_dump($envelope->getBody());

AMQP_AUTOACK);$q->delete();
$exchange->delete();
$conn->disconnect();
catch(Exception$exc) {
echo$exc->getTraceAsString();
var_dump($exc->getTrace());
finally{
$q->delete();
$exchange->delete();
$conn->disconnect();

?>
【富士康|Windows环境PHP如何使用RabbitMQ?】以上就是一个简单的php下使用RabbitMQ的示例 。 MQ的使用本身很简单 , 难点在于结合实际业务 。 大家如果有什么问题不懂的 , 欢迎留言 。 我可以解答PHP java C# py 前端 , 游戏编程 等相关的问题 , 以及大家在平时学习工作中遇到的问题都可以说出来讨论 。

相关经验推荐