位置: 编程技术 - 正文

浅谈Laravel队列实现原理解决问题记录(laravel自带队列效率)

编辑:rootadmin

推荐整理分享浅谈Laravel队列实现原理解决问题记录(laravel自带队列效率),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:laravel队列消费方式,laravel队列失败了如何处理,laravel自带队列效率,laravel队列消费方式,laravel 队列,laravel自带队列效率,laravel队列的实现原理,laravel队列的实现原理,内容如对您有帮助,希望把文章链接给更多的朋友!

问题

公司项目使用Laravel的开发的两个项目在同一个测试服务器部署,公用同一个redis。在使用laravel中的队列时,产生冲突干扰。

查找问题原因

在laravel 队列的操作类IlluminateQueueRedisQueue.php中可以看到pushRaw()方法:

从该方法中可以看出Lrarvel队列的redis实现是通过list结构实现的,rpush(key, value)是将value推入键值为key的redis队列,key的值则是通过$this->getQueue($queue) 获取到的

所以的redis中list中的key是 'queues:'.($queue &#;: $this->default);拼接的,$this->default 的值是 RedisQueue 实例化的时候从configqueue.php配置中加载的 'queue' => 'default',$queue 是添加队列时$this->dispatch( new jobClass()->onQueue($queue) )传入的。

至此,两个项目的队列冲突原因就找到了。因为redis队列配置中 'queue' => 'default' 都使用的默认的default,所以当共用redis时,默认的队列list 都是'queue:default',所以导致了冲突。

浅谈Laravel队列实现原理解决问题记录(laravel自带队列效率)

因为队列监听 监听的队列名称是由 --queue参数决定的,如果不传就是我们上面设置的默认值,若传了就会根据传入的队列名从前往后优先依次处理,具体见代码IlluminateQueueWorker.php中:

$queue就是--queue=传入的参数,当 $queue不存在是直接调用$connection->pop()当参数存在时会将参数解析,优先处理排在前面的队列名称,将队列名称传入pop($queue), pop()会尝试从指定队列或默认队列中获取队列任务

至此搞清了队列执行的原理。

解决方法

将queue的配置文件中默认队列修改为不同的名称,比如: 'queue' => laravel1','queue' => laravel2'。

队列监听 php artisan queue:listen redis --queue=laravel1,syncExpress

最后

遇到问题,莫要病急乱投医。从代码入手,分析理解实现原理,找对点,解决方法也许很简单,希望对大家的学习有所帮助,也希望大家多多支持积木网。

php创建多级目录完整封装类操作方法 创建多级目录函数中调用创建指定下的指定文件的函数:publicfunctioncreate_dir($dir,$mode=){returnis_dir($dir)or($this-create_dir(dirname($dir))andmkdir($dir,$mode));}创建

cookie的优化与购物车实例 一Cookie的优化1.1一般而言,我们设置cookie是在php中设置例如:phpsetcookie('testKey1','helloworld',0,'/');//#当expires=0时,此Cookie随浏览器关闭而失效,而在验证的

详谈PHP基础与JS操作的区别(必看篇) 嵌入页面方式JS嵌入方式:script/scriptPHP嵌入方式:php(常用)输出语法Javascript输出1.alert("警告的内容")2.prompt("提示的内容")3.document.write()(页面输出内容)PHP

标签: laravel自带队列效率

本文链接地址:https://www.jiuchutong.com/biancheng/289916.html 转载请保留说明!

上一篇:yii2 commands模式以及配置crontab定时任务的方法(yii2入门)

下一篇:php创建多级目录完整封装类操作方法(php多级分类)

  • 工资加计扣除时间怎么填
  • 酒店物业费收取标准2019
  • 筹资现金流量净额为负说明了什么问题
  • 合并报表调整分录理解
  • 企业残保金什么情况下可以减免
  • 金税盘锁死提示什么
  • 软件即征即退的发票怎么开
  • 社保当月增员次月扣费
  • 短期借款的主要形式
  • 没有纸质机票电子行程单电子版可以报销吗
  • 税率开错情况说明
  • 物流企业信用评级
  • 费用票据包括哪些
  • 未实现融资收益纳税调整
  • 转出未交增值税借方余额怎么处理
  • 支付境外销售佣金怎么做
  • 招聘签合同
  • 绿化工程企业所得税减免吗
  • 非正常损失的购进货物进项税不能抵扣
  • 国家税务局如何登录
  • 合并后的新企业有哪些
  • 营养成分表的计算表
  • 租车开具的电子发票
  • 超市收代金券如何处理
  • 建账时选择什么会计制度
  • 局域网文件共享不稳定
  • 为什么我的win10
  • 公司购买电脑流程怎么做
  • 跨年退税怎么处理
  • pcas service进程可以关闭么
  • 营改增后房地产企业账务处理
  • 增值税出口服务零税率
  • PHP:Memcached::getOption()的用法_Memcached类
  • 荣耀路由器怎么重置
  • myfastupdate.exe - myfastupdate是什么进程文件 有什么用
  • 用现金报销差旅费,合规吗
  • 最小计算机系统包括
  • 税务新政策解读
  • 调整以前年度少计提的工资
  • 什么是非征期税未报
  • 查看redis节点
  • vue动态绑定背景图
  • reset=target
  • python设置断点
  • 工程物资发生报废损毁
  • 举报民间借贷利息收入所得税
  • 非货币性资产交换和债务重组的区别
  • 车票怎么抵扣增值税税率
  • 几种财务自由
  • 不动产用于集体福利进项税额抵扣吗
  • 检查sqlserver是否安装完成
  • 购入固定资产入账会计凭证怎么做
  • 小规模纳税人固定资产原值含税吗
  • 残疾人保障金为负数
  • 小中央空调多少钱一台
  • 低值易耗品费用计入产品成本的方式有哪几种
  • 职工教育经费产生的差异
  • 什么是全面预算控制?全面预算控制的作用有哪些?
  • 个人独资企业进行委托管理要签订劳动合同
  • 一年内到期的非流动负债计算公式
  • 个体工商户要进行汇算清缴吗
  • 原材料跌价分录
  • 采购折扣怎么结算
  • 使用u盘安装windows10电脑识别不出来
  • 如何安装ubuntu20.04
  • freebsd使用手册
  • linux服务器dns配置
  • SwiftBTN.exe - SwiftBTN是什么进程 有啥作用
  • 虚拟内存扩大有什么好处
  • linux进程的环境变量
  • 深入react技术栈
  • 奇门遁甲实例详解
  • material design怎么用
  • jquery 图片预览
  • Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
  • listview控件设置多个列
  • python排序算法比较
  • javascript面向对象编程指南第三版
  • android 网络编程
  • csp2020成绩查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设