位置: 编程技术 - 正文

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

  • 加工企业税收优惠政策
  • 建筑业的增值税税负
  • 什么原始凭证可以填写
  • 公司买手表账务处理
  • 公司购买办公用品300元,以现金支付,购入后即被领用
  • 工程产值是怎么计算的
  • 应交税费贷方有余额,怎么销账
  • 小企业会计准则2023电子版
  • 企业持有到期债券的风险
  • 一般纳税人购买并销售免税货物所发生的运输费用
  • 房地产企业如何预缴土地增值税
  • 出售商品取得的收入300万元存入银行
  • 部分退货退款剩下的钱什么时候给卖家
  • 营改增施工企业哪些能退
  • 已提完折旧车辆可以卖吗
  • 财产租赁合同金额含税吗
  • 奖金计提发放会计分录
  • 防伪税控技术维护费是进项还是销项
  • 营改增前取得的不动产出售的计税方法
  • 金融企业三大使命是什么
  • 非公司员工缴纳社保有什么影响
  • 物业预收停车费不退费
  • 存出资本保证金属于什么科目
  • win11资源管理器卡死
  • 水利基金返还分录怎么写
  • 纳税申报怎么做
  • win10专业版19042.630
  • ·exe是什么文件
  • 补缴增值税滞纳金天数
  • 摊余成本计量的金融资产账面价值
  • 广告性质的赞助支出可以在企业所得税前扣除吗
  • eclipse中创建webgis项目
  • 房地产企业增值税扣除土地成本
  • 企业的民间借贷怎么处理
  • 约克大教堂是基督教吗
  • php从数据库中读取数据
  • nodejs安装与配置
  • php str
  • 指令获取
  • ps调整边缘在哪里快捷键
  • phpcms使用教程
  • 原材料被盗如何报案
  • 销售退货和折让是收入吗?吗?
  • 收到劳务派遣发票可以抵扣吗
  • 深入讲解党的创新理论
  • 企业负担的社保费会计分录
  • 出差的招待费算差旅费
  • 企业选择的短期调整
  • 会计工资标准
  • 固定资产未提完折旧
  • 应付账款现金折扣会计分录
  • 小规模纳税人企业所得税税率
  • 当月扣缴社保分录
  • 管道固定装置
  • 公司日常费用支出表怎么做
  • 月末一次结转销售成本分录
  • 购买汽车保险费是否做入固定资产
  • sql server语句查询
  • win10系统预览版
  • Win10 Build 10565版Edge浏览器完整更新日志一览
  • linux 获取网页
  • 忘记mysql密码
  • 高效快捷键
  • dl是什么文件
  • 电子版win10怎么安装
  • win8.1玩游戏好不好
  • css做一个好看的网页
  • 如何获取硬盘所有文件的列表
  • bat调用vbs脚本
  • Android studio第一行报错
  • jquery json对象
  • unity ti
  • 如何使用定向流量
  • 使用筷子就餐会不会传染乙肝病毒
  • 重写runnable
  • python按行写入txt
  • 安卓中的多线程
  • 车辆缴纳购置税多少钱
  • 浙江国地税联合申报系统官网
  • 广州市天河税务局电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设