iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >laravel 使用rabbitmq
  • 926
分享到

laravel 使用rabbitmq

php 2023-09-27 14:09:07 926人浏览 薄情痞子
摘要

composer.JSON加上:"PHP-aMQplib/php-amqplib": "^2.12",然后执行composer updatexxie 消费者: $mqConfig = GlobalConfig::get('event.mqC

composer.JSON加上:"PHP-aMQplib/php-amqplib": "^2.12",然后执行composer updatexxie

消费者:

$mqConfig = GlobalConfig::get('event.mqConfig');$exchange = 'exchange.demo';$queue = 'queue.demo';$consumerTag = 'demo.consumer' . getmypid();if (!isset($mqConfig['address']) || empty($mqConfig['address'])) {    return;}if (!isset($mqConfig['user']) || empty($mqConfig['user'])) {    return;}if (!isset($mqConfig['password']) || empty($mqConfig['password'])) {    return;}$mqAddress = $mqConfig['address'];$mqUser = $mqConfig['user'];$mqPassword = $mqConfig['password'];$mqAddressArr = explode(',', $mqAddress);$addressCount = count($mqAddressArr);if (!$addressCount) {    return;}$connection = null;try {    if ($addressCount > 1) {        $configArr = [];        foreach ($mqAddressArr as $row) {            $address = explode(':', $row);            $host = $address[0];            $port = $address[1];            $configArr[] = ['host' => $host, 'port' => $port, 'user' => $mqUser, 'password' => $mqPassword, 'vhost' => '/'];        }        $connection = AMQPStreamConnection::create_connection($configArr);    } else {        $mqAddress = explode(':', $mqAddress);        $host = $mqAddress[0];        $port = $mqAddress[1];        $connection = new AMQPStreamConnection($host, $port, $mqUser, $mqPassword, '/');    }    if (empty($connection)) {        return;    }    $channel = $connection->channel();    $channel->queue_declare($queue, false, true, false, false);    $channel->exchange_declare($exchange, 'direct', false, true, false);    $channel->queue_bind($queue, $exchange);    $callback = function ($message) {        try {            $record = json_decode($message->body, true);            $this->handleUserRunRecord($record);        } catch (\Exception $e) {            echo 'pulluserrunrecord1 error ,msg:' . $e->getMessage() . "\n";            Log::error('pulluserrunrecord1 error ,msg:' . $e->getMessage());        }        $message->delivery_info['channel']->basic_ack($message->delivery_info['delivery_tag']);        // Send a message with the string "quit" to cancel the consumer.        if ($message->body === 'quit') {            $message->delivery_info['channel']->basic_cancel($message->delivery_info['consumer_tag']);        }    };    $shutdown = function ($channel, $connection) {        $channel->close();        $connection->close();    };    $channel->basic_consume($queue, $consumerTag, false, false, false, false, $callback);    register_shutdown_function($shutdown, $channel, $connection);    // Loop as long as the channel has callbacks registered    while (count($channel->callbacks)) {        $channel->wait();    }} catch (\Exception $e) {   }

生产者:

$exchange = 'exchange.demo'; $queue = 'queue.demo';$consumerTag = 'demo.consumer' . getmypid();$connection = new AMQPStreamConnection('127.0.0.1', 5672, 'guest', 'guest', '/');$channel = $connection->channel();$channel->queue_declare($queue, false, true, false, false);$channel->exchange_declare($exchange, AMQPExchangeType::DIRECT, false, true, false);$channel->queue_bind($queue, $exchange);//$messageBody = implode(' ', array_slice($this->argument, 1));$messageBody = '{"name":"123","id":"1"}';$message = new AMQPMessage($messageBody, array('content_type' => 'text/plain', 'delivery_mode' => AMQPMessage::DELIVERY_MODE_PERSISTENT));$channel->basic_publish($message, $exchange);$channel->close();$connection->close();

参考文档:

RabbitMQ 中文文档-PHP版 - RabbitMQ PHP版

RabbitMQ Tutorials — RabbitMQ

来源地址:https://blog.csdn.net/m0_37634311/article/details/127545310

--结束END--

本文标题: laravel 使用rabbitmq

本文链接: https://www.lsjlt.com/news/419648.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • laravel 使用rabbitmq
    composer.json加上:"php-amqplib/php-amqplib": "^2.12",然后执行composer updatexxie 消费者: $mqConfig = GlobalConfig::get('event.mqC...
    99+
    2023-09-27
    php
  • laravel如何使用RabbitMQ
    这篇文章主要介绍“laravel如何使用RabbitMQ”,在日常操作中,相信很多人在laravel如何使用RabbitMQ问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”laravel如何使用RabbitMQ...
    99+
    2023-06-22
  • PHP+Laravel框架RabbitMQ简单使用
    RabbitMQ安装教程请转到:RabbitMQ安装教程(超详细) 1、创建生产者 在app/Http/Controllers里创建一个php控制器文件, namespace App\Http\Controllers;use App\Htt...
    99+
    2023-09-08
    laravel php RabbitMQ
  • 【RabbitMQ】RabbitMQ控制台的使用
    一、访问控制台页面 如果在本机上装了RabbitMQ则在浏览器访问127.0.0.1:15672,如果在服务器装了RabbitMQ则通过在浏览器输入urlip:15762来访问 登录后进入主页   二、添加RabbitMQ用户 进入主页...
    99+
    2023-09-18
    java-rabbitmq rabbitmq java
  • Laravel 队列入门教程 (RabbitMQ)
    假设你已经学过了基础 laravel任务和队列 和本系列的第一部分, 我们学习使用不同的队列连接(除了数据库), 如何为不同的任务来使用不同的队列, 以及如何将某些任务/队列优先于其他的任务/队列。使用 RabbitMQ即使laravel社...
    99+
    2023-02-09
    RabbitMQ Laravel 队列
  • RabbitMQ使用教程
    1、RabbitMq简介 RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。 AMQP :Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此...
    99+
    2023-08-18
    java-rabbitmq rabbitmq java
  • RabbitMQ的使用(JAVA)
    官网 目录 一、MQ的简介 二、MQ的作用 1、异步处理(同时处理多件事情) ​编辑 2、应用解耦(添加了一个中间件) ​编辑 3、流量控制(当秒杀的时候,可以限制流量) 三、Docker安装MQ  四、MQ的执行顺序 五、其他 1、Ex...
    99+
    2023-09-13
    java java-rabbitmq rabbitmq
  • python使用pika操作rabbitmq
    python 连接操作rabbitMQ 主要是使用pika库pip3 install pika==1.1.0 官方对于pika有如下介绍Since threads aren’t a...
    99+
    2023-01-31
    操作 python pika
  • C# RabbitMQ的使用详解
    目录安装编写消息接收端编写发送端测试发送端和接收端Fanout 模式Direct模式和RouteKeyTopic 模式本文目的如题。 安装 先说一下RabbitMQ的安装,建议使用D...
    99+
    2024-04-02
  • 怎么使用.NETCore操作RabbitMQ
    这篇文章将为大家详细讲解有关怎么使用.NETCore操作RabbitMQ,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是RabbitMQ?RabbitMQ是由erlang语言开发的一个基于AMQP(A...
    99+
    2023-06-15
  • 怎么优雅的使用RabbitMQ
    本篇内容主要讲解“怎么优雅的使用RabbitMQ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么优雅的使用RabbitMQ”吧! RabbitMQ无疑是目前...
    99+
    2024-04-02
  • rabbitmq怎么在springboot中使用
    rabbitmq怎么在springboot中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。概述RabbitMQ是一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的...
    99+
    2023-05-30
    springboot rabbitmq
  • Python介绍RabbitMQ使用篇二
    1. RabbitMQ WorkQueue基本工作模式介绍 上一篇我们使用C#语言讲解了单个消费者从消息队列中处理消息的模型,这一篇我们使用Python语言来讲解多个消费者同时工作从一个Queue处理消息的模型。 工作队列(又称:任务队...
    99+
    2023-01-31
    Python RabbitMQ
  • RabbitMQ使用场景是什么
    这篇文章主要介绍“RabbitMQ使用场景是什么”,在日常操作中,相信很多人在RabbitMQ使用场景是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”RabbitMQ使用场景是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-26
  • 如何使用RabbitMQ实现RPC
    这篇文章给大家分享的是有关如何使用RabbitMQ实现RPC的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。背景知识RabbitMQRabbitMQ 是基于 AMQP 协议实现的一个消息队列(Message Que...
    99+
    2023-06-02
  • Laravel Sanctum 的使用
    重写默认模型 由于 laravel 自带的表名叫 personal_access_tokens ,开发中我们习惯用户表名叫 users,所以我们可以将表名修改为 user_tokens 1、创建 Us...
    99+
    2023-08-31
    laravel php sanctum
  • Redis怎么与RabbitMQ结合使用
    Redis和RabbitMQ是两种不同的消息中间件,它们在功能和使用场景上有所不同。通常情况下,Redis用于缓存和数据存储,而Ra...
    99+
    2024-05-07
    Redis RabbitMQ
  • 【RabbitMQ】什么是RabbitMQ?RabbitMQ有什么用?应用场景有那些?
    目录 一、什么是RabbitMQ? 二、RabbitMQ是干什么的? 三、RabbitMQ的常见作用有那些? 四、RabbitMQ的应用场景有那些? 场景一:用户订单,库存处理。【服务间解耦】 场景二:用户注册,发送手机短信,邮件。【实现异...
    99+
    2023-08-31
    rabbitmq java 中间件 MQ
  • python使用pika库调用rabbitmq参数使用详情
    目录1、应答参数2、持久化参数3、分发参数前言: python使用pika库调用rabbitmq的参数有三种方式,分别如下所述: 1、应答参数 auto_ack=False ch.b...
    99+
    2024-04-02
  • Laravel Swagger怎么使用
    这篇“Laravel Swagger怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Laravel Swagger怎么...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作