本文操作环境: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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理