位置: 编程技术 - 正文

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

  • 申报个体经营所得税时营业外收入怎么填
  • 已在境外缴纳的企业所得税税额 分国不分项
  • 投资收益纳税调整明细表怎么填
  • 预缴增值税的销售额怎么填
  • 税收法律关系中最实质的东西是
  • 金蝶软件发票录入什么科目
  • 电子银行承兑汇票查询
  • 个税申报赡养老人可以填公婆吗
  • 金税平台开具增值税发票
  • 可抵扣租赁费如何摊销做会计分录呢?
  • 暂估确定收不到发票会计分录怎么做
  • 收到对方开的发票怎么做账
  • 增值税普通发票和专用发票有什么区别
  • 小规模纳税人需要交哪些税
  • 账本印花税计税金额或件数怎么申报2023
  • 水利建设专项收入税
  • 开具红字增值税专用发票是什么意思
  • 预付款税率是多少
  • 固定资产清理出售合同
  • 专利权计入什么所得
  • 收到联营企业分派的现金股利为什么不计入利润总额
  • 成本分析总结报告
  • 个税房租和房贷抵扣一样吗
  • 残疾人名下有房产可以申请残疾人补贴吗?
  • win7为什么不能安装软件
  • 销售费用有哪些?
  • 笔记本电脑bios设置
  • mac版字体怎么安装
  • linux系统中配置网卡ip地址的命令为
  • win10蓝牙添加设备闪退
  • csinject.exe是什么程序的进程 csinject进程是安全的吗
  • 收到原材料投资怎么做账
  • vue多入口文件
  • 长期资产的减值和流动资产的减值的区别
  • pytorch csdn
  • 2023跨年代码大全可复制免费
  • Vue3通透教程【十二】TS类型声明优势
  • 命令执行函数echo
  • powercfg off
  • 支租赁费用计提印花税吗
  • 增值税年末留底
  • 差旅费报销范围包括
  • js函数声明的提出者
  • 中药和中药饮片有区别吗
  • 企业法人需要本人到场吗
  • 出口化妆品会计怎么做账
  • 长期待摊费用好处
  • 转让股权收入属于收入总额吗
  • 普通发票税费会计分录
  • 项目独立性
  • 支付商业承兑汇票怎么做
  • 确认代销手续费怎么做账
  • 公益性捐赠会计利润总额计算方法
  • 场地租赁费属于劳务还是服务
  • 商业承兑汇票如何承兑?
  • 对公账户分为几类
  • 目前哪些费用不能抵扣
  • 建筑工程拨款申请模板
  • 职工福利费扣除税率
  • 超市会计怎么做会计分录
  • 有奖销售增值税处理
  • 办理营业执照需要什么条件
  • sql参数化还是被注入了
  • win7 光盘
  • win8创建密码
  • win10预览版21277
  • win10系统edge浏览器兼容性
  • executor进程
  • 如何灵活使用蒙恬
  • react父组件触发子组件方法
  • android从服务器获取数据
  • cocos2dx 3.3 tilemap 缩放滑动并且准确点击对象
  • 批处理循环执行批处理
  • 一起学ap
  • shell echo 特殊字符
  • Python 装饰器深入理解
  • nodejs微信公众号开发
  • 出租车票据国税怎么开
  • 安徽省税务局发票真伪查询平台
  • 资源税从价计征的有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设