如何理解Laravel队列的用途,优点是什么
Admin 2022-11-29 群英技术资讯 921 次浏览
本文操作环境:Windows10系统、Laravel9版、Dell G3电脑。
队列是一种操作受限制的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。
通过队列,你可以将耗时任务 (如发送电子邮件) 的处理往后推延。延迟这些耗时的任务可以极大地提升 web 请求响应速度。
实现队列有多种方式,Laravel也支持多种队列实现驱动,比如数据库、Redis、Beanstalkd、IronMQ及Amazon SQS等,此外还支持同步方式实现队列(默认),甚至将队列驱动设置为null表示不使用队列。Laravel为这些队列驱动提供了统一的接口,从而方便我们任意切换驱动而不需要改变业务逻辑编码,提供代码复用性。
其实说白了,就是把任务的键名和键值储存起来而已,储存的媒介用什么都可以,而所谓的队列驱动,就是把储存在这些媒介中的任务代码拿出来按照队列的算法进行执行的一种调配方式的一段代码而已。
优点
解耦:消息队列可以对系统进行解耦,提高响应速度,系统功能向内聚合,对外开放;
异步:消息队列可以对系统异步功能进行剥离,减少功能耦合,提供开发效率;
削峰:消息队列可以削峰限流,确保下游消费者稳定运行;
配置
从配置文件开始,首先我们需要在配置文件中配置默认队列驱动为Redis,队列配置文件是config/queue.php。
connections配置项:包含了Laravel支持的所有队列驱动。
failed配置项:用于配置失败队列任务存放的数据库及数据表。这里我们需要按照自己的数据库配置对其做相应修改。
说明:该配置文件第一个配置项default用于指定默认的队列驱动,这里可以更改为我们选用的其他队列驱动(实际上是修改.env中的QUEUE_DRIVER)
如下图:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章小编给大家分享一下python中内置库os与sys模块解析,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
一.首先是PHP网页的编码1.php文件本身的编码与网页的编码应匹配a.如果欲使用gb2312编码,那么php要输出头:header(“Content-Type:text/html;charset=gb2312"),静态页面添加<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">,所有文件的
用两个栈,出栈时全部出到第二个栈中,然后从第二个栈中出栈就能模拟队列队列操作类主要使用array_push()入队array_shift()出队(栈的实现类似,使用array_push()入栈,array_pop出栈)<?php/**PHP实现队列操作类*/classqueueOp{/**队尾入队*Retu
SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式,只要您知道 XML 文档的布局。SimpleXML 转换 XML 文档到 SimpleXMLElement 对象。通过正常的属性选择器和数组迭代器,这个对象能够像其他对象一样被处理。提示:与 DOM 或者 Expat 解析器比较,SimpleXML 只需要几行代码就能读取元素中的文本数据
在thinkphp5中,save()方法用于向指定数据表中添加一条记录,该方法每次仅能向表中添加一条新记录,添加多条可重复执行,语法为“模型对象 -> save(数组)”或“模型对象 -> data(数组) -> save();”。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008