thinkPHP5如何使用rabbitmq

thinkPHP5如何使用rabbitmq

thinkPHP5如何使用rabbitmq

安装好 tp5 的 rabbitmq 扩展后,在项目根目录文件添加文件 rabbitmq.php 引导启动 rabbitmq。

<?phpdefine('APP_PATH', __DIR__ . '/application/');define('BIND_MODULE','rabbitmq/Client');// 加载框架引导文件require __DIR__ . '/thinkphp/start.php';

生成者

  private function queueEvent($message)    {//        error_log("n******" . date("His") . "********n" . print_r($message, 1) . "n*************n", 3, 'messag_event.log');        dump($message);        //设置你的连接        $conn_args = array('host' => 'ip', 'port' => '5672', 'login' => 'ymq', 'password' => '123456',        'vhost'=>'/');          $content = $message;//创建连接和channel        $conn = new AMQPConnection($conn_args);        if (!$conn->connect()) {            die("Cannot connect to the broker!n");        }        $channel = new AMQPChannel($conn); //创建交换机        $e_name = 'MQTT_device_event'; //交换机名        $ex = new AMQPExchange($channel);        $ex->setName($e_name);//        $ex->setType(AMQP_EX_TYPE_TOPIC); //direct类型        $ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型        $ex->setFlags(AMQP_DURABLE); //持久化        $ex->declareExchange();    }

相关推荐:《ThinkPHP教程》

立即学习“PHP免费学习笔记(深入)”;

运行 php 目录运行生产者

消费者

 public function index()    {        //连接RabbitMQ        $conn_args = array('host' => 'ip', 'port' => '5672', 'login' => 'ymq', 'password' => '123456', 'vhost'         => '/');         $e_name = 'MQTT_device_event'; //交换机名        $q_name = 'q_event'; //队列名        $k_route = 'key_event'; //路由key //创建连接和channel        $conn = new AMQPConnection($conn_args);        if (!$conn->connect()) {            die("Cannot connect to the broker!n");        }        $channel = new AMQPChannel($conn); //创建交换机        $ex = new AMQPExchange($channel);        $ex->setName($e_name);        $ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型        $ex->setFlags(AMQP_DURABLE); //持久化        $ex->declareExchange();//创建队列        $q = new AMQPQueue($channel);        $q->setName($q_name);        $q->setFlags(AMQP_DURABLE); //持久化        $q->declareQueue();     //最好队列object在这里declare()下,否则如果是新的queue会报错 //绑定交换机与队列,并指定路由键,可以多个路由键        $q->bind($e_name, $k_route);//$q->bind($e_name, 'key_33');  //阻塞模式接收消息        echo "Message:n";        while(True){            $q->consume(function($envelope, $queue) {                $msg = $envelope->getBody();                //处理数据                echo $msg . PHP_EOL; //处理消息                $queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答            });            //$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答        }         $conn->disconnect();     }

执行下命令 php rabbitmq

启动即可

查看队列是否被消费

登录 http://127.0.0.115672/#/queues  地址

1566527668891273.jpg1566527682814017.jpg

以上就是thinkPHP5如何使用rabbitmq的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/109617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
MySQL主从复制的负载均衡效果:实测结果与性能对比
上一篇 2025年11月23日 03:46:08
在 React 中为 MUI Snackbar 组件添加过渡效果
下一篇 2025年11月23日 03:49:12

相关推荐

发表回复

登录后才能评论
关注微信