位置: 编程技术 - 正文

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

  • 企业转出多交增值税吗
  • 收到发票冲红怎么做分录
  • 资金账簿印花税最新政策2022年
  • 公司车辆承包给个人违法吗
  • 免税农产品包括烟叶吗
  • 物业费专用发票税率
  • 收到转账支票怎么去银行处理
  • 新个税聘用退休后怎么算
  • 跨期发票可以申报抵扣进项税额吗?
  • 长期股权投资权益法初始成本的确定
  • 个体户国税异常怎么办
  • 箱包类增值税发票多少点
  • 营改增贷款服务包括哪些
  • 企业发生的白条是什么
  • 回收站已损坏 是否清空该驱动,点鼠标无法操作
  • 银行承兑汇票贴现率是多少
  • 新成立企业什么时候有财务报表
  • 静默安装命令
  • 病毒变种太多
  • mgaqdesk.exe进程有什么作用 mgaqdesk进程查询
  • 男人喜欢什么样的女人最容易动心
  • php imagestring
  • 母公司收取子公司管理费用比例
  • vue3中props
  • 不符合政策和条件的成语
  • 增值税申报时,里面没有数据怎么办
  • vue获取当前路由地址
  • 设备维修的会计分录怎么做
  • 申报表已申报未交款后作废
  • 固定资产备案有什么用
  • 外贸公司美金账户维护费用
  • echo输出语句
  • 免费学电脑的网站
  • 还银行贷款怎么做凭证
  • 其他综合收益在利润表的哪个位置哪里
  • 应收票据到期后账务处理
  • 零税率与免税有何区别
  • 净利润除以实收资本是什么
  • 乘客人身意外保险单可以报销吗
  • 存款对银行经营的意义
  • 汇算清缴银行手续费放哪里
  • 投资收益影响营业额吗
  • 基层工会经费收入来源包括
  • 被财政收回的财物有哪些
  • 个人转让不动产交印花税吗
  • 银行存款利息收入要交增值税吗
  • 电子税务局申报流程
  • 固定资产处置的会计科目
  • 成品油发票的勾选方法
  • 现金支出业务的流程步骤包括
  • mysql语句group by
  • win10系统即将过期怎么办
  • 如何使用搜狗拼音输入法
  • win10的打开方式
  • win10系统遇到错误
  • 笔记本隐藏功能
  • ubuntu怎样调出命令行
  • 怎么设置电脑开机启动项
  • 老旧的诗琴五个琴谱大全
  • win7恶意程序怎么清除
  • win7 虚拟磁盘
  • win8系统安装教程图解
  • 水下摄影技巧
  • ExtJS 2.0实用简明教程 之ExtJS版的Hello
  • cocos jsc
  • Metaio in Unity3d 教程--- 一. 搭建环境,运行官方案例
  • css基础知识教程
  • opengl教程48讲
  • javascript中this的用法
  • jquery焦点
  • diskpart ntfs
  • python元数据
  • node.js alert
  • android使用方法
  • unity怎么录屏
  • 如何编写高质量创业计划书实验小结
  • 税务登记没去登记会怎么处罚
  • 税务u盘是干嘛的
  • 河南政务服务网官网
  • 增值税综合税率是什么意思啊造价
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设