Laravel8 使用 RabbitMQ
使用 RabbitMQ 前需要:
下载安装 Erlang :Windows 下安装 Erlang_Dragon-v的博客-CSDN博客
安装 PHP amqp 扩展:PHP 安装 amqp 扩展(Windows)_Dragon-v的博客-CSDN博客
开启 PHP sockets:PHP 开启 sockets_Dragon-v的博客-CSDN博客
1、在 RabbitMQ 的界面创建队列和路由:
RabbitMQ 创建 virtual host_Dragon-v的博客-CSDN博客
2、Composer 安装 laravel-queue-rabbitmq,下图是laravel和rabbitmq版本对应
composer require vladimir-yuldashev/laravel-queue-rabbitmq
3、在 config/queue.php 配置文件中的 connections 数组中加入以下配置
'rabbitmq' => ['driver' => 'rabbitmq','queue' => env('RABBITMQ_QUEUE', 'default'),'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,'hosts' => [['host' => env('RABBITMQ_HOST', '127.0.0.1'),'port' => env('RABBITMQ_PORT', 5672),'user' => env('RABBITMQ_USER', 'guest'),'password' => env('RABBITMQ_PASSWORD', 'guest'),'vhost' => env('RABBITMQ_VHOST', '/'),],],'options' => ['ssl_options' => ['cafile' => env('RABBITMQ_SSL_CAFILE', null),'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),],'queue' => ['job' => VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Jobs\RabbitMQJob::class,/*//以下配置是rabbitmq 广播模式(direct)'exchange' => 'laravel_exchange2','exchange_type' => 'direct','exchange_routing_key' => 'userkey1',*//*//以下配置是rabbitmq 广播模式(topic)'exchange' => 'laravel_exchange1','exchange_type' => 'topic','exchange_routing_key' => 'user.info',*/],],/** Set to "horizon" if you wish to use Laravel Horizon.*/'worker' => env('RABBITMQ_WORKER', 'default'),],
4、修改 .env 文件
RABBITMQ_HOST=127.0.0.1
RABBITMQ_PORT=5672
#通过15672创建的rabbitmq虚拟主机,默认是'/'
RABBITMQ_VHOST=test-host
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest
#通过15672创建的rabbitmq队列
RABBITMQ_QUEUE=laravel_swoole
5、创建任务类
php artisan make:job Queue
代码如下
<?phpnamespace App\Jobs;use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;class Queue implements ShouldQueue
{use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;public $data;/*** Create a new job instance.** @return void*/public function __construct($data){$this->data = $data;}/*** Execute the job.** @return void*/public function handle(){print_r($this->data);}
}
6、建一个控制器,代码如下,写个路由调用这个方法进行生产数据放入队列中
<?phpnamespace App\Http\Controllers;use App\Jobs\Queue;
use Illuminate\Http\Request;class TextController extends Controller
{public function aaa(Request $request){$user = [1,2,3,4,5];foreach ($user as $item) {//host-queue1 对应的队列名 $item为放入的值,也可以放入数组Queue::dispatch($item)->onConnection('rabbitmq')->onQueue('host-queue1');/* //以下配置是rabbitmq 路由模式(direct) 广播模式(topic)UserEmail::dispatch($user)->onConnection('rabbitmq');*/}return response()->json(['code'=>0, 'msg'=>"success"]);}}
7、消费队列,使用命令进行消费
php artisan queue:work rabbitmq --queue=host-queue1
效果如下:
如果队列中放的是数组那么效果如下
Laravel8 使用 RabbitMQ相关推荐
- rabbitMQ原理+Laravel8简单示例
一.rabbitMQ原理 #mermaid-svg-tvLwZJeD2JH9GfUm .label{font-family:'trebuchet ms', verdana, arial;font-fa ...
- RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)
1. simple 模式 simple 模式是最简单最常用的模式 2. work 模式 work 模式有多个消费者 消息产生者将消息放入队列.生产者系统不需知道哪一个任务执行系统在空闲,直接将任务扔到 ...
- Go 学习笔记(57)— Go 第三方库之 amqp (RabbitMQ 生产者、消费者整个流程)
1. 安装 rabbitmq 的 golang 包 golang 可使用库 github.com/streadway/amqp 操作 rabbitmq .使用下面命令安装 RabbitMQ . go ...
- RabbitMQ 入门系列(4)— RabbitMQ 启动、停止节点和应用程序、用户管理、权限配置
1. 服务器管理 我们使用 "节点" 来指代 RabbitMQ 实例,当我们谈到 RabbitMQ 节点时指的是 RabbitMQ 应用程序和其所在的 Erlang 节点. 1.1 ...
- RabbitMQ 入门系列(3)— 生产者消费者 Python 代码实现
生产者消费者代码示例 上一章节中对消息通信概念做了详细的说明,本章节我们对 RabbitMQ 生产者和消费者代码分别做一示例说明. 1. 生产者代码 #!/usr/bin/env python # c ...
- RabbitMQ 入门系列(2)— 生产者、消费者、信道、代理、队列、交换器、路由键、绑定、交换器
本系列是「RabbitMQ实战:高效部署分布式消息队列」和 「RabbitMQ实战指南」书籍的读书笔记. RabbitMQ 中重要概念 1. 生产者 生产者(producer)创建消息,然后发送到代理 ...
- RabbitMQ 入门系列(1)— Ubuntu 安装 RabbitMQ 及配置
1. RabbitMQ 简介 消息 (Message) 是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串.JSON等,也可以很复杂,比如内嵌对象. 消息队列中间件(Message Que ...
- RabbitMQ超详细安装教程(Linux)
目录 1.简介 2.下载安装启动RabbitMQ 2.1.下载RabbitMQ 2.2.下载Erlang 2.3.安装Erlang 2.4.安装RabbitMQ 2.5.启动RabbitMQ服务 3. ...
- 第五节 RabbitMQ在C#端的应用-消息收发
原文:第五节 RabbitMQ在C#端的应用-消息收发 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/phocus1/article/details/873 ...
最新文章
- 去伪存真,更多区块链落地应用即将涌现
- HDU 1574 RP问题
- 【upc 9541 矩阵乘法】非正解
- python PyQt5 sizeHint()
- Keras学习笔记:序列式模型
- 漫步数学分析六——聚点
- 从生产线到生产岛:理解敏捷开发中的设计与测试活动
- linux自动更新漏洞,Linux爆本地提权漏洞 请立即更新udev程序
- AdventNet Agent Toolkit C Edition6 AGENT
- 计算机中丢失pbvm80,修复pbvm80.dll
- BugFree使用指南
- 项目管理之项目成本管理
- 概括几种项目类型使用的技术路线
- 树形DP(放置街灯,uva 10859)
- ListView在工程中的详细应用(简易记账本)
- 网站域名解析为什么错误?域名解析错误怎么解决?
- Java创建RPG游戏角色
- git重新生成ssh密钥
- SAP 委外加工与工序外协
- 《牧羊少年奇幻之旅》shbp--2