首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel队列简单使用

消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。...同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。...=redis 使用redis驱动 REDIS_CLIENT=predis 使用predis 生成队列需要的数据表 有时候队列会执行失败,这张表用于存放失败信息 php artisan queue:failed-table...// 如 slug 字段无内容,即使用翻译器对 title 进行翻译 if ( !...} 队列监控 1.通过命令监控 php artisan queue:listen 2.有图形界面的监控 Horizon 安装Horizon composer require "laravel/horizon

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

laravel使用redis配置队列

有些任务并不需要及时运行,就可以将其写入队列,从而不影响主业务逻辑的进程。如:用户发帖成功后推送消息给其关注的用户。...image 配置redis队列 每当用户成功发贴,就将这一事件写入队列,我们使用Redis作为队列驱动器 首先安装相应扩展 nrk/predis $ composer require predis/predis...Laravel 内置了一个方便的方式来指定任务重试的最大次数。当任务超出这个重试次数后,它就会被插入到 failed_jobs 数据表里面。...我们可以使用 queue:failed-table 命令来创建 failed_jobs 表的迁移文件: $ php artisan queue:failed-table 生成 failed_jobs 表.../notice.txt', $content, FILE_APPEND); } } 任务分发 在 app/Http/Controllers/HomeController.php 进行任务分发:

1.8K30

Laravel使用Queue队列的技巧汇总

前言 Laravel 队列为不同的后台队列服务提供统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系型数据库的队列。...其中还包含了一个 null 队列驱动用于那些放弃队列的任务 为什么使用队列? 一般来说使用队列是为了: 异步 重试 也许你还有其他的理由使用队列,但是这应该是最基本的两个原因。...什么情况使用队列? 了解了为什么使用队列,那么一般有这么几类任务使用队列: 耗时比较久的,比如上传一个文件后进行一些格式的转化等。...使用队列的时候一定要想明白一个问题,这个任务到底是不是可以异步,如果因为异步会导致问题,那么就要放弃使用队列。...数据库 要使用 database 这个队列驱动的话,你需要创建一个数据表来存储任务。

2.3K10

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

php Laravel Laravel 队列为不同的后台队列服务提供统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系型数据库的队列。...队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短 Web 请求和响应的时间。 这里我们使用 database 做队列驱动,Laravel 版本为 5.8 1....生成 数据表记录存储任务 php artisan queue:table #生成迁移文件 php artisan migrate #进行迁移,(根据迁移文件生成表) 2....运行队列任务 php artisan queue:work #运行所有队列任务,更多参数可以参考Laravel 官方手册 执行了php artisan queue:work 它会一直运行,需要你自己关闭...本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: Sep 26, 2019 at 03:42

1.4K30

Laravel7中Redis队列使用

​​​​手动分发任务 我们可以使用控制器中的DispatchesJobs trait(该trait在控制器基类Controller.php中引入)提供的dispatch方法手动分发任务: /...在浏览器中访问http://laravel.app:8000/mail/sendReminderEmail/1,此时任务被推送到Redis队列中,我们还需要在命令行中运行Artisan命令执行队列中的任务...Laravel为此提供了三种Artisan命令: queue:work 默认只执行一次队列请求, 当请求执行完成后就终止; queue:listen 监听队列请求,只要运行着,就能一直接受请求,除非手动终止...能看出来, queue:work --daemon是最高级的,一般推荐使用这个来处理队列监听。...注:使用 queue:work --daemon ,当更新代码的时候,需要停止,然后重新启动,这样才能把修改的代码应用上。

94520

Laravel5.4 队列简单配置与使用

引用一点官方翻译的话: Laravel 队列为不同的后台队列服务提供统一的 API , 例如 Beanstalk,Amazon SQS, Redis,甚至其他基于关系型数据库的队列。...每一种队列驱动的配置都可以在该文件中找到, 包括数据库, Beanstalkd, Amazon SQS, Redis, 以及同步(本地使用)驱动。...=队列),这里我们选择使用关系型数据库来实现队列 QUEUE_DRIVER=database 创建任务 创建任务 = 搞一个生产者 = (其实就是写一个在队列中你想执行的业务逻辑),名字随意取,但最好遵守命名规范...$i)); } } 你通过数据迁移的数据表中就基本成这样了 消费者 消费者 = 队列处理 = (你在商城购物已经开始付钱了),使用下面命令则你开始消费,队列也会按照你上面的业务逻辑开始处理...php artisan queue:work 基本就下面这个样 到此Laravel5.4 队列简单配置与使用就结束了。

1.5K10

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

前言 Laravel 队列服务为各种不同的后台队列提供了统一的 API 允许推迟耗时任务(例如发送邮件)的执行,从而大幅提高 web 请求速度 总而言之,队列就是在后台执行一些耗时的任务,从而让前台访问速度加快...步骤 迁移队列需要的表 才开始尝试使用队列,还是简单点,使用数据库就行。...修改配置文件: 在.env文件里默认有: QUEUE_CONNECTION=sync,也即默认使用的是sync驱动,我们这里改为database 【数据库】 ?...肯定的啊,都是后台的队列了,那肯定就是后台执行啊。所以,laravel完全不适合在虚拟机里面运行,无论从composer包的安装还是其他方面来说。.../logs/laravel-xxx.log 2、处理失败的任务 在任务失败时, 你可以选择 清除失败的任务或者 重新执行失败的任务 查看所有失败的任务, 会将所有失败的任务查询出来输出到命令行

1.5K00

Laravel使用 PM2 管理多个队列

接着上一篇的思路,要在 Laravel使用 PM2 管理多个队列,该如何操作呢创建多个队列使用 php artisan queue:table 命令创建 Laravel队列表。...然后使用 php artisan make:job 命令创建新的队列任务类,例如:php artisan make:job ProcessInvoice在这个例子中,我们将使用名为 ProcessInvoice...接下来,您可以使用 queue() 方法将任务添加到指定的队列中。...修改 pm2.config.js 配置文件在您的 Laravel 项目根目录中,打开 pm2.config.js 文件,并将以下内容添加到 apps 数组中:{ name: "Invoices Queue...启动 PM2 进程使用以下命令启动 PM2 进程:pm2 start pm2.config.js现在,您可以在 PM2 中查看多个队列的运行情况,并且每个队列都将被单独管理和监视。

55050
领券