国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php框架 ThinkPHP thinkPHP5如何使用rabbitmq

thinkPHP5如何使用rabbitmq

Aug 23, 2019 am 10:42 AM
rabbitmq thinkphp5

thinkPHP5如何使用rabbitmq

thinkPHP5如何使用rabbitmq?

安裝好 tp5 的 rabbitmq 擴(kuò)展后,在項(xiàng)目根目錄文件添加文件 rabbitmq.php 引導(dǎo)啟動(dòng) rabbitmq。

<?php
define(&#39;APP_PATH&#39;, __DIR__ . &#39;/application/&#39;);
define(&#39;BIND_MODULE&#39;,&#39;rabbitmq/Client&#39;);
// 加載框架引導(dǎo)文件
require __DIR__ . &#39;/thinkphp/start.php&#39;;

生成者

  private function queueEvent($message)
    {
//        error_log("\n******" . date("His") . "********\n" . print_r($message, 1) . "\n*************\n", 3, 
&#39;messag_event.log&#39;);
        dump($message);
        //設(shè)置你的連接
        $conn_args = array(&#39;host&#39; => &#39;ip&#39;, &#39;port&#39; => &#39;5672&#39;, &#39;login&#39; => &#39;ymq&#39;, &#39;password&#39; => &#39;123456&#39;,
        &#39;vhost&#39;=>&#39;/&#39;);
 
 
        $content = $message;
//創(chuàng)建連接和channel
        $conn = new \AMQPConnection($conn_args);
        if (!$conn->connect()) {
            die("Cannot connect to the broker!\n");
        }
        $channel = new \AMQPChannel($conn);
 
//創(chuàng)建交換機(jī)
        $e_name = &#39;MQTT_device_event&#39;; //交換機(jī)名
        $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();
    }

相關(guān)推薦:《ThinkPHP教程

運(yùn)行 php 目錄運(yùn)行生產(chǎn)者

消費(fèi)者

 public function index()
    {
        //連接RabbitMQ
        $conn_args = array(&#39;host&#39; => &#39;ip&#39;, &#39;port&#39; => &#39;5672&#39;, &#39;login&#39; => &#39;ymq&#39;, &#39;password&#39; => &#39;123456&#39;, &#39;vhost&#39; 
        => &#39;/&#39;);
 
        $e_name = &#39;MQTT_device_event&#39;; //交換機(jī)名
        $q_name = &#39;q_event&#39;; //隊(duì)列名
        $k_route = &#39;key_event&#39;; //路由key 
//創(chuàng)建連接和channel
        $conn = new \AMQPConnection($conn_args);
        if (!$conn->connect()) {
            die("Cannot connect to the broker!\n");
        }
        $channel = new \AMQPChannel($conn); 
//創(chuàng)建交換機(jī)
        $ex = new \AMQPExchange($channel);
        $ex->setName($e_name);
        $ex->setType(AMQP_EX_TYPE_DIRECT); //direct類型
        $ex->setFlags(AMQP_DURABLE); //持久化
        $ex->declareExchange();
//創(chuàng)建隊(duì)列
        $q = new \AMQPQueue($channel);
        $q->setName($q_name);
        $q->setFlags(AMQP_DURABLE); //持久化
        $q->declareQueue();     //最好隊(duì)列object在這里declare()下,否則如果是新的queue會(huì)報(bào)錯(cuò) 
//綁定交換機(jī)與隊(duì)列,并指定路由鍵,可以多個(gè)路由鍵
        $q->bind($e_name, $k_route);
//$q->bind($e_name, &#39;key_33&#39;);  
//阻塞模式接收消息
        echo "Message:\n";
        while(True){
            $q->consume(function($envelope, $queue) {
                $msg = $envelope->getBody();
                //處理數(shù)據(jù)
                echo $msg . PHP_EOL; //處理消息
                $queue->ack($envelope->getDeliveryTag()); //手動(dòng)發(fā)送ACK應(yīng)答
            });
            //$q->consume(&#39;processMessage&#39;, AMQP_AUTOACK); //自動(dòng)ACK應(yīng)答
        }
 
        $conn->disconnect(); 
    }

執(zhí)行下命令 php rabbitmq

啟動(dòng)即可

查看隊(duì)列是否被消費(fèi)

登錄 http://127.0.0.115672/#/queues? 地址

thinkPHP5如何使用rabbitmqthinkPHP5如何使用rabbitmq

以上是thinkPHP5如何使用rabbitmq的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

如何利用React和RabbitMQ構(gòu)建可靠的消息傳遞應(yīng)用 如何利用React和RabbitMQ構(gòu)建可靠的消息傳遞應(yīng)用 Sep 28, 2023 pm 08:24 PM

如何利用React和RabbitMQ構(gòu)建可靠的消息傳遞應(yīng)用引言:現(xiàn)代化的應(yīng)用程序需要支持可靠的消息傳遞,以實(shí)現(xiàn)實(shí)時(shí)更新和數(shù)據(jù)同步等功能。React是一種流行的JavaScript庫,用于構(gòu)建用戶界面,而RabbitMQ是一種可靠的消息傳遞中間件。本文將介紹如何結(jié)合React和RabbitMQ構(gòu)建可靠的消息傳遞應(yīng)用,并提供具體的代碼示例。RabbitMQ概述:

SpringBoot怎么整合RabbitMQ實(shí)現(xiàn)延遲隊(duì)列 SpringBoot怎么整合RabbitMQ實(shí)現(xiàn)延遲隊(duì)列 May 16, 2023 pm 08:31 PM

如何保證消息不丟失rabbitmq消息投遞路徑生產(chǎn)者->交換機(jī)->隊(duì)列->消費(fèi)者總的來說分為三個(gè)階段。1.生產(chǎn)者保證消息投遞可靠性。2.mq內(nèi)部消息不丟失。3.消費(fèi)者消費(fèi)成功。什么是消息投遞可靠性簡單點(diǎn)說就是消息百分百發(fā)送到消息隊(duì)列中。我們可以開啟confirmCallback生產(chǎn)者投遞消息后,mq會(huì)給生產(chǎn)者一個(gè)ack.根據(jù)ack,生產(chǎn)者就可以確認(rèn)這條消息是否發(fā)送到mq.開啟confirmCallback修改配置文件#NONE:禁用發(fā)布確認(rèn)模式,是默認(rèn)值,CORRELATED:

如何在PHP中使用RabbitMQ實(shí)現(xiàn)分布式消息處理 如何在PHP中使用RabbitMQ實(shí)現(xiàn)分布式消息處理 Jul 18, 2023 am 11:00 AM

如何在PHP中使用RabbitMQ實(shí)現(xiàn)分布式消息處理引言:在大規(guī)模應(yīng)用程序開發(fā)中,分布式系統(tǒng)已成為一個(gè)常見的需求。分布式消息處理是這樣的一種模式,通過將任務(wù)分發(fā)到多個(gè)處理節(jié)點(diǎn),可以提高系統(tǒng)的效率和可靠性。RabbitMQ是一個(gè)開源的,可靠的消息隊(duì)列系統(tǒng),它采用AMQP協(xié)議來實(shí)現(xiàn)消息的傳遞和處理。在本文中,我們將介紹如何在PHP中使用RabbitMQ來實(shí)現(xiàn)分布

在Go語言中使用RabbitMQ:完整指南 在Go語言中使用RabbitMQ:完整指南 Jun 19, 2023 am 08:10 AM

隨著現(xiàn)代應(yīng)用程序的復(fù)雜性增加,消息傳遞已成為一種強(qiáng)大的工具。在這個(gè)領(lǐng)域,RabbitMQ已成為一個(gè)非常受歡迎的消息代理,可以用于在不同的應(yīng)用程序之間傳遞消息。在這篇文章中,我們將探討如何在Go語言中使用RabbitMQ。本指南將涵蓋以下內(nèi)容:RabbitMQ簡介RabbitMQ安裝RabbitMQ基礎(chǔ)概念Go語言中的RabbitMQ入門RabbitMQ和Go

Swoole與RabbitMQ集成實(shí)踐:打造高可用性消息隊(duì)列系統(tǒng) Swoole與RabbitMQ集成實(shí)踐:打造高可用性消息隊(duì)列系統(tǒng) Jun 14, 2023 pm 12:56 PM

隨著互聯(lián)網(wǎng)時(shí)代的到來,消息隊(duì)列系統(tǒng)變得越來越重要。它可以使不同的應(yīng)用之間實(shí)現(xiàn)異步操作、降低耦合度、提高可擴(kuò)展性,進(jìn)而提升整個(gè)系統(tǒng)的性能和用戶體驗(yàn)。在消息隊(duì)列系統(tǒng)中,RabbitMQ是一個(gè)強(qiáng)大的開源消息隊(duì)列軟件,它支持多種消息協(xié)議、被廣泛應(yīng)用于金融交易、電子商務(wù)、在線游戲等領(lǐng)域。在實(shí)際應(yīng)用中,往往需要將RabbitMQ和其他系統(tǒng)進(jìn)行集成。本文將介紹如何使用sw

go-zero與RabbitMQ的應(yīng)用實(shí)踐 go-zero與RabbitMQ的應(yīng)用實(shí)踐 Jun 23, 2023 pm 12:54 PM

現(xiàn)在越來越多的企業(yè)開始采用微服務(wù)架構(gòu)模式,而在這個(gè)架構(gòu)中,消息隊(duì)列成為一種重要的通信方式,其中RabbitMQ被廣泛應(yīng)用。而在go語言中,go-zero是近年來崛起的一種框架,它提供了很多實(shí)用的工具和方法,讓開發(fā)者更加輕松地使用消息隊(duì)列,下面我們將結(jié)合實(shí)際應(yīng)用,來介紹go-zero和RabbitMQ的使用方法和應(yīng)用實(shí)踐。1.RabbitMQ概述Rabbit

怎么去除thinkphp5標(biāo)題欄icon 怎么去除thinkphp5標(biāo)題欄icon Dec 20, 2022 am 09:24 AM

去除thinkphp5標(biāo)題欄icon的方法:1、找到thinkphp5框架public下的favicon.ico文件;2、刪除該文件或者選擇另一張圖片命名改為favicon.ico,并替換原favicon.ico文件即可。

Golang與RabbitMQ實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)同步的解決方案 Golang與RabbitMQ實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)同步的解決方案 Sep 27, 2023 pm 10:41 PM

Golang與RabbitMQ實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)同步的解決方案引言:當(dāng)今時(shí)代,隨著互聯(lián)網(wǎng)的普及和數(shù)據(jù)量的爆發(fā)式增長,實(shí)時(shí)數(shù)據(jù)的同步變得越來越重要。為了解決數(shù)據(jù)異步傳輸和數(shù)據(jù)同步的問題,許多公司開始采用消息隊(duì)列的方式來實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)同步。本文將介紹基于Golang和RabbitMQ的實(shí)時(shí)數(shù)據(jù)同步的解決方案,并提供具體的代碼示例。一、什么是RabbitMQ?Rabbi

See all articles