位置: 编程技术 - 正文

浅谈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多级分类)

  • 企业缴纳增值税会计科目怎么做
  • 小规模纳税人企业所得税计算
  • 房地产开发企业土地增值税预缴
  • 提前一个月完工奖励10万元
  • 分公司产生的费用怎么报销
  • 销售部门领用材料用于销售计入
  • 代理记账公司账本
  • 一般纳税人税收优惠政策有哪些2023年
  • 计算消费税时运费计入计税依据么
  • 自然灾害造成的房屋损失怎么处理
  • 库存商品结转成本的金额怎么计算
  • 未入账成本
  • 国际贷款平台
  • 企业所得税征收标准2023
  • 增值税专用发票几个点
  • 股票内在价值计算公式中级财务管理
  • 个税申报异常怎么办
  • 生产成本为什么不属于费用
  • 增值税的计征方法有哪些
  • 资金清算款项
  • 给员工发放奖励计入
  • 商贸公司进货的会计分录
  • 法人借款可以做到短期借款吗
  • 小规模纳税人月销售额不超过10万免征
  • 固定资产清查怎么开展
  • 跨区域提供建筑服务个人所得税
  • linux常用的命令大全
  • 为什么ie浏览器打开是2345浏览器
  • 设备的折旧率是什么意思
  • 监事会职权口诀
  • 企业支付个人劳务费需要发票吗
  • quickres.exe - quickres是什么进程 作用是什么
  • PHP:oci_pconnect()的用法_Oracle函数
  • 为什么windows10关机后自动开机
  • 土地增值税内控报告
  • 百度地图api的基本使用
  • vue trim
  • 委托代销商品的会计分录怎么做
  • thinkphp excel
  • vue路由实例
  • declare -i
  • php使用for循环实现乘法口诀表
  • 发票报销入账
  • 发票待开是什么意思?
  • 软件增值税即征即退文件
  • 小规模纳税人增值税税率
  • 个人账户收到多少钱会被监控
  • 关联广告是什么意思
  • 印花税的缴纳
  • sql server的go
  • 农产品进项核定扣除成本法
  • 原材料的对应账户有哪些
  • 向投资者支付的股息
  • 其他应付款付不出去怎么处理好
  • 材料发票税额
  • 异地成立分公司的流程和要求
  • 股权转让中土地要否缴纳增值税
  • 房地产开发企业建造的商品房,在出售前
  • 营改增后服务业账务处理
  • 如何开发票?
  • 员工伤残补助会计分录
  • 个体工商户如何缴纳社保
  • mysql详细教程
  • windows如何创建桌面快捷方式
  • 直接内存访问控制器是什么
  • centos6.6
  • win10怎么变回系统默认字体
  • win10开机自动启动软件怎么设置
  • 在linux系统中拥有
  • http://www.2cto.com/kf/201402/280576.html
  • python三角形角度
  • Unity3D游戏开发毕业论文
  • js声明集合
  • 如何在python中运行程序
  • unity3d碰撞体
  • 怎么用python播放音乐
  • 委托代征管理办法最长有效期
  • 内蒙古自治区耕地保养条例
  • 如何电子税务局缴纳社保费用
  • 苏州相城离苏州市区有多远
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设