位置: 编程技术 - 正文

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

  • 金税盘数据怎么备份
  • 初级税务师什么时候报名
  • 计税依据什么意思
  • 机票的抵扣进项怎么抵扣
  • 个体工商户可以给员工交社保吗
  • 货已到发票未到跨年怎么做账
  • 救护车能随便买吗
  • 服务性单位从事的是餐饮中介服务
  • 租金收入个人所得税
  • 支付员工提成奖金怎么做会计分录?
  • 应收账款的借方表示增加还是减少
  • 提前还款罚息是多少
  • 通用机打发票操作流程
  • 企业所得税汇算清缴退税账务处理
  • 不申报税务登记被注销
  • 生产要素和资源的区别和联系
  • 符合条件的小微企业,减按20%
  • 与建筑物有关的设计
  • 货物入库会计分录怎么做
  • 个人所得税申报截止时间
  • win11小组件加载内容出现错误
  • windows10桌面右键没反应
  • 商事账簿编制的一般规则是什么
  • 表彰比例如何确定
  • 证券的投资
  • 所得税汇算清缴退税会计分录怎么做
  • 官网下载的iso怎么用u盘安装
  • 在Linux系统中安装Samba服务器
  • 广告公司的设计师多少钱一月
  • 子公司之间能否相互承包工程
  • 公司刚成立多久可以注销
  • php调用sql server存储过程
  • 建筑业异地施工可以先开发票么
  • 个体工商户减免个人所得税政策
  • framework core
  • 员工出差垫钱
  • 支出的科目变化率怎么算
  • 代码简单图案
  • 反射机制python
  • python如何导入excel
  • 会计做账需要银行交易明细吗
  • 出租固定资产的租金收入
  • 为什么社保卡里有钱
  • 织梦网站怎么添加关键词
  • 民办学校学费收现金
  • 调整未分配利润影响所得税吗
  • sqlserver2008数据库备份和恢复步骤
  • mysql数据数据库
  • sqlserver2012无法新建表
  • 还未摊销的房租怎么入账
  • 临时工工资应计入什么科目
  • 无形资产怎么计算公式
  • 固定资产计提折旧的原则
  • 党委费用支出需要什么票据
  • 企业买车购置税可以抵增值税吗
  • 企业接受非货币性资产投资的入账金额
  • 分享一下相亲时碰见过哪些奇葩事
  • 数据库保护数据方式
  • Windows7 64位环境下Python-igraph环境配置的方法
  • wincomp.exe - wincomp进程是什么意思
  • 怎么配置命令
  • vmware tools安装包在哪
  • win7旗舰版重装系统教程
  • Win10 build 10240有"启用快速启动"功能吗?如何开启和关闭这个功能?
  • 逆向教程推荐知乎
  • 虚拟内存系统盘
  • js怎么操作css
  • 如何使用nodejs
  • 编写shell脚本,实现备份文件:每天18:00归档
  • 粒子特效优化
  • 手把手教你把币从交易所提到钱包
  • unity备份工程
  • unity如何导出vr项目
  • 等待窗口
  • 大连税务登记app
  • 施工企业建筑机械管理机构主要职责是负责建筑机械的
  • 深圳税务忘记密码
  • 增值税专用发票电子版
  • 季度申报表如何填写
  • 出口货物计算公式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设