位置: 编程技术 - 正文

浅谈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
  • 物业公司车位出租能开具什么发票
  • 小微企业所得税减免政策
  • 全额计提坏账准备后,多久核销应收账款
  • 固定资产装修费用计入房产税吗
  • 发票备注栏必须备注的有哪些
  • 加计抵减申报表填写说明
  • 个税申报截止日期2023年8月
  • 建设工程服务招标管理办法
  • 收取外部客户电费如何结转成本
  • 股东入股资本公司的条件
  • 已付款货物还未付款
  • 企业出现经营异常
  • 牵引车需要交车船税吗
  • 个人独资企业免税销售额
  • 税务局申请发票
  • 小规模纳税人咨询费税率
  • 纳税等级信息查询
  • 应交税费的期初余额是借还是贷
  • 临时工发工资要扣税吗
  • 个人转让上市公司股票交增值税吗
  • 收到人民政府寄来的ems
  • 开发商开发土地需要交国家什么钱
  • 小型微利企业应纳税所得额300万
  • 计提福利费会计科目
  • 子网掩码和默认网关怎么填
  • 金融负债包括哪几项
  • 未开发的土地被司法查封,自然资源局可以收回吗
  • 资产处置收益与固定资产清理
  • win11任务栏全部显示
  • 公司内部罚款的备注怎么写劳动仲裁
  • 期货交易的会计分录
  • 医院的重要
  • php file_append
  • 收到的担保费如何记账
  • 富士山的岩石属于什么岩
  • 密歇根湖怎么读
  • 对于小型微利企业的建议
  • 不用财务软件的公司要去吗
  • 代开开增值税专票和自己开有什么区别
  • 达尔文岛在地图上位置
  • 模型如何优化
  • 外出培训餐费要进差旅费吗
  • uni vuex
  • 表单验证用什么方法实现
  • 共享主机和vps
  • php实现将base64格式图片保存在指定目录的方法
  • thinkphp 分页
  • 普通发票可以跨年报销吗
  • 货币盘盈盘亏账怎么算
  • 存货的账务处理分录
  • 财务中常有提到的问题
  • 固定资产折旧如何进行会计处理
  • 辞职单位补偿标准
  • 异地托收承付结算ppt
  • 企业所得税期初余额什么意思
  • 交付使用资产是固定资产吗
  • 办公桌椅入什么会计科目
  • 谈一谈企业应如何做才能更好地、有效地激励员工
  • 未分配利润太多的危害
  • 企业处置子公司
  • 应收账款收不回来怎么处理比较好
  • 股东在注册资本金范围内承担责任
  • 出口货物两张报关单
  • mysql两者之间
  • win097
  • 苹果电脑注释
  • xp电脑小游戏
  • redhat本地yum配置的基本步骤
  • WIN10系统英文怎么改中文?
  • Win10 Build 14316启用Linux Bash 环境图文教程
  • win10麦克风无法说话
  • Python中lambda的作用
  • linux shell脚本编程入门
  • bash shell control z
  • koa与node.js开发实战
  • python列出所有文件名
  • 广州车船税每年交多少
  • 税务局打印发票的软件是哪个
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设