laravel rabbitmq 队列

  1. 安装Laravel的RabbitMQ队列驱动:

composer require vladimir-yuldashev/laravel-queue-rabbitmq

env文件配置 

#rabbitmq
QUEUE_CONNECTION=rabbitmq  #修改一下
RABBITMQ_HOST=192.168.11.4  #要连接的主机名
RABBITMQ_PORT=5671         #端口号
RABBITMQ_VHOST=/
RABBITMQ_USER=root       #mq登录名
RABBITMQ_PASSWORD=root     #mq登录密码
RABBITMQ_QUEUE=test11111         #mq连接的名称(随便写)

创建一个新的队列任务类 

php artisan make:job ProcessPodcast

ProcessPodcast任务类中实现handle方法 

<?phpnamespace App\Jobs;use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class ProcessPodcast implements ShouldQueue
{use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;private $data;/*** Create a new job instance.*/public function __construct($data){$this->data = $data;}/*** Execute the job.*/public function handle(): void{// 处理业务...echo json_encode(['1----'.date('Y-m-d H:i:s',time())]);sleep(5);echo json_encode(['2----'.date('Y-m-d H:i:s',time())]);sleep(5);echo json_encode(['3----'.date('Y-m-d H:i:s',time())]);sleep(5);echo json_encode(['4----'.date('Y-m-d H:i:s',time())]);$this->data['exec_time'] = date('Y-m-d H:i:s');Log::info($this->data);echo json_encode($this->data);}
}

配置  config/app.php 增加

VladimirYuldashev\LaravelQueueRabbitMQ\LaravelQueueRabbitMQServiceProvider::class,

配置 config/queue.php 增加

'rabbitmq' => ['driver'                => 'rabbitmq','host'                  => env('RABBITMQ_HOST', '192.168.11.4'),'port'                  => env('RABBITMQ_PORT', 5671),'vhost'                 => env('RABBITMQ_VHOST', '/'),'login'                 => env('RABBITMQ_LOGIN', 'root'),'password'              => env('RABBITMQ_PASSWORD', 'root'),'queue'                 => env('RABBITMQ_QUEUE'), // name of the default queue,'exchange_declare'      => env('RABBITMQ_EXCHANGE_DECLARE', true), // create the exchange if not exists'queue_declare_bind'    => env('RABBITMQ_QUEUE_DECLARE_BIND', true), // create the queue if not exists and bind to the exchange'queue_params'          => ['passive'           => env('RABBITMQ_QUEUE_PASSIVE', false),'durable'           => env('RABBITMQ_QUEUE_DURABLE', true),'exclusive'         => env('RABBITMQ_QUEUE_EXCLUSIVE', false),'auto_delete'       => env('RABBITMQ_QUEUE_AUTODELETE', false),],'exchange_params' => ['name'        => env('RABBITMQ_EXCHANGE_NAME', null),'type'        => env('RABBITMQ_EXCHANGE_TYPE', 'direct'), // more info at http://www.rabbitmq.com/tutorials/amqp-concepts.html'passive'     => env('RABBITMQ_EXCHANGE_PASSIVE', false),'durable'     => env('RABBITMQ_EXCHANGE_DURABLE', true), // the exchange will survive server restarts'auto_delete' => env('RABBITMQ_EXCHANGE_AUTODELETE', false),],],

控制器 TestController

<?phpnamespace App\Http\Controllers\Admin;use App\Http\Controllers\Controller;
use App\Jobs\ProcessPodcast;class TestController extends Controller
{/*** 队列* */public function rabbitmqTest(){// 在控制器或其他逻辑中$job = new ProcessPodcast(['zh'=>1]);dd(dispatch($job));}}

运行 

php artisan queue:work

 ACCESS_REFUSED -使用身份验证机制AMQPLAIN时登录被拒绝

解决方案,ACCESS_REFUSED -使用身份验证机制AMQPLAIN时登录被拒绝-CSDN博客

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/830717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动化测试用例之元素自愈:Playwright与pytest的结合使用

前言 在自动化测试领域&#xff0c;元素定位的准确性对于测试的成功至关重要。当使用Playwright结合pytest进行测试时&#xff0c;我们可以通过一些策略来增强测试的鲁棒性&#xff0c;特别是在元素定位失败时能够自动进行修复。本文将详细介绍如何实现这一过程。 环境准备 …

ZooKeeper 搭建详细步骤之一(单机模式)

ZooKeeper 搭建详细步骤之三&#xff08;真集群&#xff09; ZooKeeper 搭建详细步骤之二&#xff08;伪集群模式&#xff09; ZooKeeper 搭建详细步骤之一&#xff08;单机模式&#xff09; ZooKeeper 及相关概念简介 搭建模式简述 ZooKeeper 的搭建模式包括单机模式、集群模…

Java jstat 基本使用 gc 查看,jstat -gcutil等

jstat&#xff08;Java Statistics Monitoring Tool&#xff09;是JDK自带的一个命令行工具&#xff0c;用于监视Java虚拟机&#xff08;JVM&#xff09;的各种运行时性能统计信息&#xff0c;如垃圾收集、内存使用情况等。它允许用户无需附加到目标Java进程中&#xff0c;即可…

YOLOv8核心原理深度解析

YOLOv8源码地址: https://github.com/ultralytics/ultralytics 一、简介: 根据官方描述,Yolov8是一个SOTA模型,它建立在Yolo系列历史版本的基础上,并引入了新的功能和改进点,以进一步提升性能和灵活性,使其成为实现目标检测、图像分割、姿态估计等任务的最佳选择。其具体…

10种新兴网络安全威胁和攻击手法

网络攻击 第一 种新型勒索软件攻击 在当今互联网世界中&#xff0c;勒索软件已成为企业和个人面临的严峻威胁。根据Akamai发布的《互联网状态&#xff08;SOTI&#xff09;报告》&#xff0c;在不断发展的勒索软件环境中&#xff0c;攻击者正试图突破受害者的防御能力。与此同…

Vue3 + Element-plus 报错 require is not defined 处理问题

问题复现&#xff1a; yarn dev 后报错如下&#xff1a; app.js:358 Uncaught ReferenceError: require is not defined at eval (index.mjs:4:30) at Module../node_modules/element-plus/icons-vue/dist/es/index.mjs (chunk-vendors.js:9072:1) at webpack_require (app.j…

AI图书推荐:将 ChatGPT和Excel融合倍增工作效率

《将 ChatGPT和Excel融合倍增工作效率》&#xff08; Hands-on ChatGPT in Excel. Enhance Your Excel Workbooks&#xff09;由Mitja Martini撰写&#xff0c;旨在教授读者如何将ChatGPT与Excel结合使用&#xff0c;以提升工作效率和创造AI增强的Excel工具。它还提供了Excel中…

AnomalyGPT——使用大型视觉语言模型进行工业异常检测的算法解析与应用

1.概述 工业缺陷检测是工业自动化和质量控制中的一个重要环节&#xff0c;其目的是在生产过程中识别和分类产品或组件中的缺陷&#xff0c;以确保最终产品的质量满足既定标准。这项技术的应用可以显著提高生产效率&#xff0c;降低成本&#xff0c;并减少由于缺陷产品导致的潜…

Vue3 + TS + Element-Plus 封装的 Table 表格组件

代码中主要增加了3个插槽&#xff0c;operationsStart 从操作栏开头增加按钮&#xff0c;operationsStart 从操作栏结尾增加按钮&#xff0c;还有一个插槽用来自定义列的内容&#xff0c;就是 TableModel里面的Key <template><el-tableborderstripe:data"data&q…

sgg_ssm学习--前端搭建遇到的问题

目录 问题1&#xff1a;由于我是解压缩软件nodejs&#xff0c;没有添加系统路径 解决&#xff1a;添加nodejs的路径 到系统 path中 问题2&#xff1a;vscode 终端输入npm命令 报错 解决(如图所示在vscode打开前端工程&#xff0c;终端修改如下配置)&#xff1a; 问题1&…

如何在iPhone上恢复出厂设置后恢复数据

你不想让这种情况发生&#xff0c;但它确实发生了。您必须将iPhone恢复出厂设置。当您的 iPhone 上出现软件问题且无法修复时&#xff0c;可能会发生这种情况。相反&#xff0c;在更新期间&#xff0c;或者您的iPhone遇到问题时&#xff0c;iPhone上的数据不再存在。 不过不用…

利用R语言自带函数快速探索数据

《R Graphics Cookbook》 chapter2 Quickly Exploring Data 快速浏览数据 为了非常快速地浏览数据&#xff0c;有时使用 R 自带的绘图函数很有用 Creating a Scatter Plot 创建一个散点图 要制作散点图&#xff0c;请使用 plot() 并向其传递一个 x 值的向量&#xff0c;后跟一…

xcode 15.3 连接iphone 14PM真机提示 is not available because it is unpair

错误提示&#xff1a;iPhone 14PM is not available because it is unpaired&#xff0c;Pair with the device in the XcodeDevices Window, and respond to anypairing prompts on the device. 1、退出XCode,断开连接设备 2 、在终端执行 sudo pkill usbmuxd 3 、重新打开x…

Spark SQL编程初级实践

参考链接 Spark编程: Spark SQL基本操作 2020.11.01_df.agg("age"->"avg")-CSDN博客 RDD编程初级实践-CSDN博客 Spark和Hadoop的安装-CSDN博客 1. Spark SQL基本操作 { "id":1 , "name":" Ella" , "age":…

使用多网络和Kubernetes转变您的通讯应用程序

传统的 Kubernetes 网络在基本的 Pod 到 Pod 连接方面表现出色&#xff0c;但在满足通讯工作负载的安全性、性能和合规性要求时可能存在不足。这限制了通讯提供商充分利用 Kubernetes 的可扩展性和敏捷性优势的能力。 Google Cloud 的多网络方法使通讯提供商能够克服这些限制&a…

笔记-PPT绘图导出高清无失真图片

问题描述&#xff1a;PPT绘图已经用了高清图&#xff08;jpg、tif格式&#xff09;&#xff0c;但论文图片还是不清晰&#xff0c;打印出来还是有点糊 以下是PPT导出高清不失真图片&#xff08;emf格式&#xff09;的具体描述。 目录 一、绘图工具二、操作步骤 一、绘图工具 …

数据挖掘之基于Lightgbm等多模型消融实验的信用欺诈检测实现

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在当前的金融环境中&#xff0c;信用欺诈行为日益增多&#xff0c;给金融机构和消费者带来了巨大的损…

Docker常用命令 镜像库设置

Docker常用命令 & 镜像库设置 1. 镜像操作2. 容器操作3. 网络操作4. Docker Compose操作5. Docker volume操作6. Docker run介绍7. 镜像库设置 1. 镜像操作 列出本地所有的镜像 docker images从远程仓库拉取镜像到本地 docker pull <image_name>删除本地的指定镜像…

【已解决】pandas读excel中长数字变成科学计数法的问题

pandas 读excel中的长数字时&#xff0c;即使excel中已经设置为文本&#xff0c;读进df后也会自动变成科学计数法。 在日常的数据分析和处理工作中&#xff0c;Excel和pandas是数据分析师们不可或缺的得力助手。然而&#xff0c;在使用pandas读取Excel文件时&#xff0c;我们有…

Spring Boot的热部署工具“AND”Swagger测试工具

Spring Boot的热部署&Swagger测试页面的使用 热部署指的是在项目无需重启的情况下&#xff0c;只需要刷新页面&#xff0c;即可获得已经修改的样式或功能。要注意该工具一般用于开发环境&#xff0c;在生产环境中最好不要添加这个工具。 对于无需重启便可刷新这么方便的工…