首页
学习
活动
专区
圈层
工具
发布

Laravel中简单使用队列加快访问速度

前言 Laravel 队列服务为各种不同的后台队列提供了统一的 API 允许推迟耗时任务(例如发送邮件)的执行,从而大幅提高 web 请求速度 总而言之,队列就是在后台执行一些耗时的任务,从而让前台访问速度加快...步骤 迁移队列需要的表 才开始尝试使用队列,还是简单点,使用数据库就行。...肯定的啊,都是后台的队列了,那肯定就是后台执行啊。所以,laravel完全不适合在虚拟机里面运行,无论从composer包的安装还是其他方面来说。...附命令 附上一些常用命令 1、运行队列监听器 php artisan queue:listen 如果执行成功, jobs 中的数据表就没有数据了 如果执行失败,可以在日志中查看原因, 默认是 storage.../logs/laravel-xxx.log 2、处理失败的任务 在任务失败时, 你可以选择 清除失败的任务或者 重新执行失败的任务 查看所有失败的任务, 会将所有失败的任务查询出来输出到命令行

1.9K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Laravel7中Redis队列的使用

    一、配置文件 首先我们需要在配置文件中配置默认队列驱动为Redis,队列配置文件是config/queue.php: return [ 'default' => env('QUEUE_DRIVER...(new SendReminderEmail($user)); 四、运行队列监听器 在浏览器中访问http://laravel.app:8000/mail/sendReminderEmail/1,此时任务被推送到...Redis队列中,我们还需要在命令行中运行Artisan命令执行队列中的任务。...Laravel为此提供了三种Artisan命令: queue:work 默认只执行一次队列请求, 当请求执行完成后就终止; queue:listen 监听队列请求,只要运行着,就能一直接受请求,除非手动终止...注:使用 queue:work --daemon ,当更新代码的时候,需要停止,然后重新启动,这样才能把修改的代码应用上。

    1.3K20

    Laravel队列简单使用

    消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。...配置队列 安装扩展包 composer require "predis/predis:~1.0" 队列的配置信息存放在config/queue.php 在.env中修改配置驱动 QUEUE_DRIVER...SerializesModels; protected $topic; public function __construct(Topic $topic) { // 队列任务构造器中接收了...} 队列监控 1.通过命令监控 php artisan queue:listen 2.有图形界面的监控 Horizon 安装Horizon composer require "laravel/horizon...:~1.0" 生成配置 php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider" 接下来输入 http

    1K20

    Laravel中利用队列发送邮件的方法示例

    前言 本文主要给大家介绍了关于Laravel中队列发送邮件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 批量处理任务的场景在我们开发中是经常使用的,比如邮件群发,消息通知,...短信,秒杀等等,我们需要将这个耗时的操作放在队列中来处理,从而大幅度缩短Web请求和相应的时间。...下面讲解下Laravel中队列的使用 1、配置文件 config/queue.php <?...index() { $user = User::find(1); $this->dispatch(new SendEmail($user)); } } 4、然后访问浏览器,运行项目把任务推送到队列中...注:使用 queue:work --daemon ,当更新代码的时候,需要停止,然后重新启动,这样才能把修改的代码应用上。

    1.8K30

    laravel使用redis配置队列

    有些任务并不需要及时运行,就可以将其写入队列,从而不影响主业务逻辑的进程。如:用户发帖成功后推送消息给其关注的用户。...image 以下用一个场景来模拟队列: 模拟用户发贴 新建路由:routes/web.php Route::get('/publish-article', 'HomeController@publish...image 配置redis队列 每当用户成功发贴,就将这一事件写入队列,我们使用Redis作为队列驱动器 首先安装相应扩展 nrk/predis $ composer require predis/predis...修改 .env 的 QUEUE_CONNECTION 值 QUEUE_CONNECTION=redis 任务失败重试表 有时候队列中的任务会失败。...Laravel 内置了一个方便的方式来指定任务重试的最大次数。当任务超出这个重试次数后,它就会被插入到 failed_jobs 数据表里面。

    2K30

    Laravel之队列「建议收藏」

    2:connections配置项包含了Laravel支持的所有队列驱动,我们使用Redis驱动,所以需要配置redis项:connection对应config/database.php中redis的default....在下一次再被处理 b.判断同一任务失败的次数 $this->attempts() // 返回失败次数 $this->release(50); // 将任务放回到队列,50秒后次执行 启动队列监听 基本命令.../etc/supervisor/conf.d 目录,在该目录中,可以创建多个配置文件指示 Supervisor 如何监视进程,例如,让我们创建一个开启并监视queue:work 进程的laravel-worker.conf...:* 如果出现异常: 可查看我博客的supervisor错误排查 后台队列(守护进程) Artisan 命令queue:work 包含一个–daemon 选项来强制队列 worker 持续处理任务而不必重新启动框架...2.如果修改了代码,在后台队列中是无效的,必须重启队列 php artisan queue:restart 这个命令依赖于缓存系统重启进度表,默认情况下,APC 在 CLI 任务中无法正常工作,如果你在使用

    2.1K10

    laravel-redis消息队列

    原理 消息队列由消息、队列、处理程序组成。 基本的流程就是由生产者(业务代码)将数据推送到队列中(此处使用的是Redis),然后由消费者(处理程序)从队列中取出数据进行加工处理。...Model; class Student extends Model { // 定义模型对应的数据库表名 protected $table = 'students'; } Laravel...的队列系统 队列配置文件存储在 config/queue.php,在.env文件中,配置queue的连接为 Redis QUEUE_CONNECTION=redis 任务类 接下来使用命令 php artisan...监听 开启监听队列 php artisan queue:work redis --queue=TestQueueStudent --tries=3 tries代表失败后最大尝试次数。...root@php:/var/www/html/laravel.cn# php artisan queue:work redis --queue=TestQueueStudent --tries=1 [2024

    36610

    宝塔消息队列启动

    消息队列需要进程守护,下面介绍两种方式进行队列进程守护 一、使用Supervisor配置消息队列 设置PHP命令版本 1.修改宝塔命令行的PHP版本,将命令行的PHP版本和站点的PHP版本保持一致...宝塔软件商店搜索Supervisor并安装 添加守护进程 3.安装完成之后,点击设置-添加守护进程 4.启动用户选择WWW,运行目录选择程序的根目录,输入下方命令,保存即可。...listen --queue 5.添加完成显示如下图 注意:如果添加完成无法显示,请删除Supervisor并重启宝塔面板重新安装,如果始终不出现,请更换成堡塔应用管理器 二、使用堡塔应用管理器配置消息队列...PHP版本和站点的PHP版本保持一致 安装堡塔应用管理器 2.宝塔软件商店搜索堡塔应用管理器并安装 添加守护进程 3.点击设置,添加应用 应用名称使用英文,随机填写 应用环境选择站点对应的php环境 启动文件选择项目根目录下面的...think文件 执行目录选择项目根目录 启动参数填写queue:listen --queue 配置完成之后点击添加 4.如果添加完成之后,状态是已暂停,就点击已暂停文字进行启动。

    1.3K10

    基于 Redis 在 Laravel 中实现消息队列及底层源码探究

    这样一来,我们就实现了一个简单的消息队列,启动这个消息处理器: 然后访问任意一篇文章 http://redis.test/posts/1,就可以在队列处理器窗口看到队列的任务处理记录: 同时在数据库中看到更新后的浏览数...=redis 这样一来,Laravel 就可以基于 config/queue.php 中的 redis 配置初始化队列系统了: 'redis' => [ 'driver' => 'redis'...在 Laravel 应用启动时,会通过 QueueServiceProvider 来注册队列系统相关服务到服务容器: public function register() { $this->registerManager...消息数据 Laravel 队列系统中的消息数据会以任务类形式提供,并且针对不同的驱动再做一层封装,从而方便底层进行统一处理,对于 Redis 驱动的队列系统,最终获取到的数据会通过 RedisJob 封装后返回...(这里是 Redis)可以独立于应用(这里是 Laravel 项目)进行部署,而且理论上可以启动任意多个处理进程消费消息队列中的任务,所以可以非常方便地通过水平扩展来提高系统并发量,此外,Laravel

    6.9K30

    记录:简单使用Laravel 队列 queue 教程

    php Laravel Laravel 队列为不同的后台队列服务提供统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系型数据库的队列。...队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短 Web 请求和响应的时间。 这里我们使用 database 做队列驱动,Laravel 版本为 5.8 1....生成测试数据 php artisan tinker; //进入tinker factory(App\User:class,30)->create() # 生成30条测试数据 3.建立测试控制器生成 job 队列...简单建立一个控制器,设置路由 通过$this->dispatch()生成队列; 队列任务 php artisan queue:work #运行所有队列任务,更多参数可以参考Laravel 官方手册 执行了php artisan queue:work 它会一直运行,需要你自己关闭

    1.7K30

    Docker为何未在生产环境中取得广泛成功?

    大多数问题我已经在大会演讲中或与Docker团队交流中讨论过。本文倒不是要明确指出什么不再是问题:比如说,新注册中心(registry)克服了旧注册中心的许多不足。...在版本1.7中,已并入了试验性支持进程外插件的功能,但是让我失望的是,它并不随带日志驱动程序。我认为,版本1.8会计划添加这项功能,但是在官方记录中找不到这项。...在Shopify,我们一年半前开发了ejson(ejson是一种简单的库,用嵌入在JSON文件中的公钥加密该文件中的所有值,详见https://www.shopify.com/technology/26892292...由于这个原因,大多数厂商仍在虚拟机中运行容器,而虚拟机的安全久经考验。...这意味着,你必须极其小心对待映像每个层中的东西,因为不然你很可能到头来为大型应用程序传输100MB的数据。

    1.6K100
    领券