位置: 编程技术 - 正文

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

  • 印花税入什么科目核算成本
  • 公司代缴个人所得税做账
  • 所得税税负率是125正常吗
  • 增值税应交税费和申报的不一样怎么调整
  • 航天税务软件
  • 企业收到退回的所得税的账务处理
  • 2021年超市发票税率是多少
  • 递延收益影响当期损益吗
  • 残疾证挂靠一年多少钱
  • 企业所得税税收优惠政策
  • 收到存款利息属于现金流量表
  • 工程收到收据没有发票的会计分录怎么做?
  • 自产产品赠送确认收入吗
  • 少缴纳个人所得税的需要付什么责任
  • 不是本公司员工
  • 代收代付给个人
  • 发票对方作废了,客户还可以认证么
  • 耕地占用税和契税什么时候交
  • 专家评审费个人所得税由谁支付
  • 减半征收城建税文件
  • 企业所得税申报表在哪里打印
  • 集体公司改制
  • 成交转化率的计算公式电脑
  • 如何理解总分机的概念
  • 汇丰银行账户管理费
  • 设备租赁公司怎么复制赚钱
  • 固定资产进项税额怎么做账
  • 月末计提固定资产折旧时,应借记
  • macbook怎么修改默认系统
  • laravel批量更新数据
  • tdxcef.exe进程
  • 内部员工租房租金合法吗
  • 承兑到期解付为什么不到账
  • 单位专项资金使用管理规
  • 试用期不交金后面补缴
  • react函数组件useeffect
  • 长期借款的利息计入
  • 前端es6是什么意思
  • 什么是AI工具
  • 出口退税款的账务怎么做
  • 前端面试经常被问的问题
  • php的array
  • 命令执行函数echo
  • 应收账款坏账准备计算表
  • 工程补偿款开什么发票
  • 矿山征收
  • 帝国cms如何调用网络
  • 织梦怎么调用当前栏目下的文章
  • python的用途
  • 什么情况需要预缴
  • 向银行申请银行汇票
  • mysql操作步骤
  • 资产负债表可以反映的具体信息有
  • 发现以前年度错账,不论错账是否涉及损益
  • 自产产品对外捐赠确认收入吗
  • 工资扣税是减去五险一金吗
  • 固定资产处置如何申报企业所得税
  • 投资收益的账务怎么处理
  • 企业有外币账户怎样做账
  • win10预览版21277
  • 如何删除windows.old
  • Ubuntu 15.04系统怎么清理的系统垃圾文件?
  • 苹果电脑旋转屏幕设置在哪里找
  • 如何禁用mac内置键盘
  • number mac
  • pascl32.exe - pascl32是什么进程 有什么用
  • win7系统怎么设置锁屏密码怎么设置
  • win7开始菜单没有搜索框
  • python的判断语句
  • nodejs mocha
  • jquery 插件写法
  • jquery常用操作
  • unity3d quaternion
  • javascript字符类型
  • js如何使用
  • 广东税务查询系统
  • 车船税每年都是300怎么变成600
  • 按期申报和按次申报的区别
  • 征收两道消费税怎么算
  • 税收筹划可分为
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设