位置: 编程技术 - 正文

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

  • 买车交的保险
  • 小规模纳税人的认定标准是什么
  • 财税通财务软件如何调整凭证间距
  • 增值税视同销售账务处理怎么做?
  • 税务检查的定义
  • 什么是明细分类账簿
  • 待处理财产损益借方
  • 公司户和个人户卖车的时候价格差多少
  • 发票已开后 对方公司名称变更怎么处理
  • 收到社保局返还的应届毕业生补贴
  • 房地产开发企业会计科目
  • 税控发票包括哪些
  • 冲销上年计提的住房公积金怎么做账
  • 收到客户银行按时到账
  • 城镇土地使用税的计税依据
  • 个人转到公司账上的钱能开发票吗
  • 子公司打钱给母公司
  • 地质灾害评估费收费标准
  • 关于固定资产管理
  • 开餐费发票要开具数量和单价吗
  • 哪些情况下,企业需要进行分销渠道设计决策
  • 从业人数如何计算
  • 过路费发票可以抵扣增值税吗
  • 员工奖励专项基金怎么填
  • 生产用厂房计入什么科目
  • SwiftBTN.exe - SwiftBTN是什么进程 有啥作用
  • php laravel教程
  • 公司收到供应商退款会计分录
  • 生产成本包括哪些项目
  • 清算期间会计科目
  • 银行汇票未用退回情况说明
  • 进口增值税采集
  • php curl爬虫
  • 核电站弃置费用怎么算
  • php页面刷新代码
  • php输出表格css
  • web前端面试题2021及答案
  • web网页设计期末作业猫眼电影首页
  • website
  • 帝国cms适合建什么站
  • 查补收入是否享受免税政策
  • 电子税务怎么绑定开票员信息
  • 股权转让怎么查
  • 当月增加的固定资产当月不计提折旧
  • 租赁办公场所的法律规定
  • 法人可以领退休金吗
  • 员工休产假社保如何交
  • 跨月管理费用多计怎么处理
  • 在建工程和预付账款怎么转化
  • 补交去年工会经费会计分录
  • 预收账款和应收账款的转换
  • 公司充话费
  • 什么是金融资产和金融负债
  • 地方水利建设基金减免政策2023
  • 补开以前的发票可以抵企业所得税吗?
  • 最新的会计规定出台时间
  • 返利开红字发票怎么做账
  • 应交税费借方如何计算
  • 企业购买黄金有限制吗
  • 因进出口商品引起的收支
  • 一次性收入怎么计税
  • 其他资本公积核算哪些内容
  • win2003控制面板在哪里打开
  • windows8crazy error
  • windows终端美化
  • win7旗舰版系统重装
  • 电脑xp操作系统
  • Linux Mint 5 XFCE Community Edition RC1 (BETA 025) 本月17日开始发布
  • navapp.exe - navapp是什么进程文件 作用是什么
  • cocos2d官网
  • python爬虫教程
  • android floatbutton
  • 一道关于医用口罩的数学题初二
  • 用javascript
  • python调用python代码
  • [置顶]马粥街残酷史
  • jquery封装的函数
  • 税源管理科是干什么的
  • 税务总局和各省税务机关
  • 税收筹划六种方法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设