iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >laravel队列怎么使用
  • 642
分享到

laravel队列怎么使用

2023-06-29 04:06:29 642人浏览 独家记忆
摘要

今天小编给大家分享一下laravel队列怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在laravel中,队列是一种

今天小编给大家分享一下laravel队列怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

在laravel中,队列是一种操作受限制的线性表,它只允许在表的前端(队头)进行删除操作,而在表的后端(队尾)进行插入操作;通过队列,开发者可以将耗时任务的处理往后推延,进而可以极大地提升WEB请求响应速度。

laravel中队列的使用

1、什么是队列

队列是一种操作受限制的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。

通过队列,你可以将耗时任务 (如发送电子邮件) 的处理往后推延。延迟这些耗时的任务可以极大地提升 web 请求响应速度。

2、优点

  • 解耦:消息队列可以对系统进行解耦,提高响应速度,系统功能向内聚合,对外开放;

  • 异步:消息队列可以对系统异步功能进行剥离,减少功能耦合,提供开发效率;

  • 削峰:消息队列可以削峰限流,确保下游消费者稳定运行;

3、配置

队列配置文件存储在 config/queue.PHP 中。 在这个文件中,你可以找到框架中包含的每个队列驱动程序的连接配置,其中包括数据库,Beanstalkd,Amazon SQS,Redis,和一个同步驱动程序(sync-供本地使用)。
这里使用 Redis 作为驱动,需要安装好 Redis 以及 相关扩展。

4、任务

我们需要把一些东西放入队列中,我们可以称之为任务。Laravel 框架中创建任务给我们提供了以下命令:

php artisan make:job TestJob

TestJob.php

namespace App\Jobs;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldBeUnique;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Queue\SerializesModels;use Illuminate\Support\Facades\DB;use Symfony\Polyfill\Intl\Idn\Info;class TestJob implements ShouldQueue{    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;        public function __construct()    {        //    }        public function handle()    {//        \Log::info('hhh');        DB::connection('test')            ->table('master')            ->insert([                'name'=>'小白',                'email'=>'123@qq.com'            ]);    }}

5、分发

一旦编写了任务类,就可以使用任务本身的 dispatch 方法来分派它。传递给 dispatch 方法的参数将被传递给任务的构造函数。

onQueue:           指定队列;
onConnection:   指定连接;
delay:          延迟队列;
dispatchNow:        同步调度;

#在路由中简单调用Route::get('queue',function(){        \App\Jobs\TestJob::dispatch();//        \App\Jobs\TestJob::dispatch()->onQueue('qq');    });

运行两次该路由可以看到生成一个名为qq的队列,后面我们对队列进行消费

laravel队列怎么使用

6、队列消费

Laravel 有一个队列处理器对新推入队列的任务进行处理。通过 Artisan 命令 queue:work 来启动队列处理器。需要注意的是,一旦 queue:work 命令启动,将一直保持运行,直到它被手动停止或你关闭你的终端:

php artisan queue:work
php artisan queue:work --once  添加参数,消费指定队列

#消费qq队列php artisan queue:work --queue=qq

可以看到数据库中新增了两条数据,并且redis中数据被消费

laravel队列怎么使用

laravel队列怎么使用

我们再次执行路由

laravel队列怎么使用

7、事件队列

队列通常是用来处理延迟任务,事件是业务逻辑处理。Laravel 中的 事件 触发器分发至队列中进行异步业务处理,那么这样之后可以快速做出响应而不用实时等待执行结果之后才能给使用者做出提示消息。
如果需要把事件中的业务存放到队列中去,我们并不需要重新进行队列的分发,直接在对应的监听器中实现 Illuminate\Contracts\Queue\ShouldQueue 接口即可。

创建事件和监听器

php artisan make:event TestEventphp artisan make:listener TestListener

在app\providers\EventServiceProvider.php中注册

laravel队列怎么使用

TestListener.php

namespace App\Listeners;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Support\Facades\DB;class TestListener implements ShouldQueue{        public function __construct()    {        //    }        public function handle()    {        DB::connection('test')            ->table('master')            ->insert([                'name'=>'小黑',                'email'=>'234@qq.com'            ]);    }}

修改路由

Route::get('queue',function(){        //\App\Jobs\TestJob::dispatch();        //指定队列名称        //\App\Jobs\TestJob::dispatch()->onQueue('qq');        return event(new \App\Events\TestEvent());    });

运行路由

laravel队列怎么使用

消费队列

php artisan queue:work

laravel队列怎么使用

以上就是“laravel队列怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: laravel队列怎么使用

本文链接: https://www.lsjlt.com/news/322539.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • laravel队列怎么使用
    今天小编给大家分享一下laravel队列怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在laravel中,队列是一种...
    99+
    2023-06-29
  • Laravel队列如何使用
    这篇文章主要讲解了“Laravel队列如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Laravel队列如何使用”吧!什么情况使用队列?耗时的,比如上传一个文件后进行一些格式的转化等。...
    99+
    2023-06-29
  • laravel如何使用redis队列
    这篇文章将为大家详细讲解有关laravel如何使用redis队列,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、队列配置文件是config/queue.php(这里我默认配置即可):2、 创建迁移表(f...
    99+
    2023-06-14
  • Laravel的队列机制怎么用
    这篇文章主要介绍了Laravel的队列机制怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。为什么 首先,我们要知道为什么要使用队列,不使用队列会怎么样!优缺点如何我们可以...
    99+
    2023-06-22
  • laravel队列有什么作用
    这篇文章主要介绍了laravel队列有什么作用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇laravel队列有什么作用文章都会有所收获,下面我们一起来看看吧。在laravel中,队列可以用于允许在表的前端进行...
    99+
    2023-07-02
  • laravel使用redis队列实例讲解
    1、队列配置文件是config/queue.php(这里我默认配置即可): 2、 创建迁移表(failed-table 、jobs、migrations) php artis...
    99+
    2024-04-02
  • Laravel使用Queue队列的技巧汇总
    Laravel 队列为不同的后台队列服务提供统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系型数据库的队列。队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短 Web 请求和相应的时间...
    99+
    2023-09-02
    laravel php 开发语言
  • 配置laravel-job队列
    laravel7-job教程 supervisor配置看的这位兄台的 感谢 来源地址:https://blog.csdn.net/sll9711/article/details/125330579...
    99+
    2023-09-15
    laravel php
  • laravel源码分析队列Queue方法怎么用
    本篇内容介绍了“laravel源码分析队列Queue方法怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!队列任务的创建先通过命令创建一个...
    99+
    2023-06-29
  • laravel队列执行失败怎么处理
    laravel队列执行失败处理方法:1、重新执行失败的队列任务,获取有关失败任务的信息,运行 ` artisan queue:failed` 命令并选择重新执行失败的任务;2、解决常见问题,检查队列连接是否正常,队列是否超时,代码错误是否错...
    99+
    2023-07-10
  • laravel自带队列效率怎么提升
    要提升Laravel队列的效率,可以考虑以下几个方面:1. 使用适当的队列驱动器:Laravel支持多种队列驱动器,如数据库、Red...
    99+
    2023-09-06
    laravel
  • laravel用队列能解决什么问题
    这篇“laravel用队列能解决什么问题”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“laravel用队列能解决什么问题”文...
    99+
    2023-06-29
  • laravel队列并发消费怎么配置
    要在Laravel中配置并发消费队列,需要进行以下步骤: 首先,确保你已经安装了 Laravel 的队列服务提供者(例如,Red...
    99+
    2023-10-28
    laravel
  • laravel多线程执行队列怎么实现
    在Laravel中,可以使用`illuminate/queue`组件来实现多线程执行队列的功能。首先,需要在项目中安装`illumi...
    99+
    2023-09-06
    laravel
  • Laravel怎么实现队列和任务调度
    本文小编为大家详细介绍“Laravel怎么实现队列和任务调度”,内容详细,步骤清晰,细节处理妥当,希望这篇“Laravel怎么实现队列和任务调度”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、 我们首先准备一下...
    99+
    2023-07-04
  • node消息队列怎么使用
    这篇文章主要介绍“node消息队列怎么使用”,在日常操作中,相信很多人在node消息队列怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”node消息队列怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-05
  • 怎么使用redis消息队列
    要使用Redis作为消息队列,你需要按照以下步骤进行操作:1. 安装并启动Redis服务。2. 在你的应用程序中引入Redis的客户...
    99+
    2023-08-24
    redis
  • python有序队列怎么使用
    在Python中,你可以使用queue模块中的Queue类来实现有序队列的操作。Queue类是一个线程安全的队列,提供了一系列的方法...
    99+
    2024-02-29
    python
  • Linux消息队列怎么使用
    在Linux中,消息队列是一种进程间通信的机制,用于在不同进程之间传递数据。下面是使用Linux消息队列的步骤: 包含头文件: ...
    99+
    2023-10-22
    Linux
  • Laravel 队列入门教程 (RabbitMQ)
    假设你已经学过了基础 laravel任务和队列 和本系列的第一部分, 我们学习使用不同的队列连接(除了数据库), 如何为不同的任务来使用不同的队列, 以及如何将某些任务/队列优先于其他的任务/队列。使用 RabbitMQ即使laravel社...
    99+
    2023-02-09
    RabbitMQ Laravel 队列
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作