您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 黄石分类信息网,免费分类信息发布

thinkPHP5如何使用rabbitmq

2024/6/16 19:05:21发布4次查看
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 目录运行生产者
消费者
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  地址
以上就是thinkphp5如何使用rabbitmq的详细内容。
黄石分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录