位置: 编程技术 - 正文

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

  • 产权转移书据印花税计税依据
  • 购销合同印花税按70%
  • 京东公户的钱怎么转出来
  • 长期应收款在资产负债表中填在哪里
  • 营业收入大于资产总计和主营业务收入之和什么原因
  • 500元以内的无票报销是累计还是一次
  • 采购货款属于什么会计科目
  • 出口旧设备最新政策
  • 外商投资企业采购国产设备退税后续监管办法
  • 怎么算应纳企业所得税
  • 增值税一般计税方法
  • 购入资产的入账价格一般是以该项资产的什么反应
  • 技术服务费收入怎么确认收入
  • 公司买手机可以开票抵扣吗
  • 企业所得税季度纳税申报表 a类
  • 已抵扣进项税额的购进货物或者应税劳务
  • 专利申请费用怎么做账
  • 增值税如何填报
  • 确认递延收益纳税调整吗
  • 个人出租房屋交税如何计算
  • 企业购买理财产品的会计分录
  • 资金使用计划表怎么写
  • 不征收增值税的项目有哪些
  • 社保刚办理可以用吗
  • php模块
  • php新手入门
  • 预收账款期末余额怎么算
  • 食堂现金管理办法
  • uniapp动态修改pages.json
  • 个人独资企业建筑类怎么注册
  • Vue3通透教程【十二】TS类型声明优势
  • php读取文件内容的方法和函数
  • 亏损弥补政策
  • 存货毁损计入什么科目
  • 营业外支出结转损益
  • 建筑行业销售材料怎么做
  • 材料采购成本是什么科目
  • 工资是负数怎么办
  • 一般纳税人认定管理办法
  • 其他收益包含
  • 利润表季报的本期金额
  • 总公司和分公司企业所得税分配
  • 合营企业和联营企业的概念
  • 管理费用增加是因为什么
  • 以前年度损益调整属于哪类科目
  • 代开增值税额与实际缴款额差一分钱如何入账?
  • 现金折扣不考虑增值税
  • 递延所得税如何计提
  • 暂估成本以后也没有票回来了
  • 资产折旧的计税基础
  • 银行的现金解款需要多久
  • 预付卡业务该如何管理
  • 税务稽查补缴增值税税的账务处理流程
  • 当期损益包括哪些科目指的
  • 清空mysql数据库
  • sql server 数据
  • xp系统怎么连接电脑
  • macbookair安装rosetta
  • 预装win10
  • winxp系统控制面板
  • ubuntu20.04卸载
  • ubuntu查看内存占用最多的进程ID
  • centos重新安装命令
  • mac怎么自定义桌面图标
  • 360tray占用大量内存
  • jQuery Mobile 和 Kendo UI 的比较
  • jquery如何赋值
  • js表达式语法大全
  • python常用的安装扩展
  • 开通局域网共享工具
  • python作用域和优先级
  • java script
  • android图片压缩库
  • 医保可以异地交嘛
  • 厦门怎么查询自己名下电动自行车
  • 北京重点税源直报平台登录
  • 税控发票开票系统对电脑配置有要求吗?
  • 讨论如何做好寺庙管理服务工作
  • 沙石开发票
  • 印花税属于什么业务类型
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设