6.9. 使用队列

使用队列

上一章节中我们开发了自动生成 Slug 功能,但是因为我们需要实时请求百度翻译接口,这将会是一个系统性能隐患。

一般情况下,网络请求会存在各种不确定性,如果请求 API 出现超时情况,或者发生不可预知的错误,我们的用户将无法发帖。

生成 Slug 只是一个 优化 功能,并非是发帖的 必要 功能,我们希望无论生成 Slug 的结果如何,用户都能顺利的发帖,并且完全察觉不到延迟。

利用队列系统可以做到这点。队列允许你异步执行消耗时间的任务,比如请求一个 API 并等待返回的结果。这样可以有效的降低请求响应的时间。

1. 配置队列

队列的配置信息储存于 config/queue.php 文件中,在这个文件中你会发现框架所支持的队列驱动的配置连接示例。这些驱动包括:数据库,Beanstalkd,Amazon SQS,Redis,和一个同步(本地使用)的驱动。还有一个名为...

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 87

月光
bignose
总结要点:使用队列,监控队列
28 个点赞 | 5 个回复 | 分享 | 课程版本 5.5
Fykex
[笔记] 使用队列:什么是消息队列
6 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
proHorry
slug 与异步获取 slug (队列任务) 的笔记分享
6 个点赞 | 0 个回复 | 分享 | 课程版本 5.5
mmz
关于队列重复?的一个问题
5 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
running8
每一次练习都有收获,都觉得干货很多。
3 个点赞 | 0 个回复 | 分享 | 课程版本 5.7
Job 和 事件 有啥区别呢 分别使用场景是什么呢?
2 个点赞 | 3 个回复 | 问答 | 课程版本 5.7
purson
请教一下什么是序列化为什么要序列化 + 什么是依赖注入?
2 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
john2411
为什么使用 App (SlugTranslateHandler::class)?
2 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
oneSmile
线上环境使用 horizon,不执行任务?
1 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
冷无缺
Horizon 在线上环境已开启,但是队列任务不执行?
1 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
pandance
为啥站点运行越来越慢?
1 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
zhangqing
安装依赖 predis,内存不足
1 个点赞 | 2 个回复 | 分享 | 课程版本 5.8
LiJie123
生产环境需要讲 .env 文件中更改设置 QUEUE_DRIVER=Redis 么?
1 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
sinmu
[记一次]composer install --ignore-platform-reqs解决版本冲突
1 个点赞 | 1 个回复 | 分享 | 课程版本 8.x
yanyinge
代码是正确的, Job 执行出现差错
1 个点赞 | 0 个回复 | 分享 | 课程版本 5.7
jollysone
使用队列,加载依赖包 Composer 报错 ?
0 个点赞 | 10 个回复 | 问答 | 课程版本 5.5
dokiss
Horizon 检测不到队列任务和错误
0 个点赞 | 8 个回复 | 问答 | 课程版本 5.7
kangsf
安装 Composer require "Laravel/horizon:~1.0"失败 ??
0 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
zssen
执行 queue:failed-table 之后有错误?
0 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
vhkdiy
Mac 下运行 Redis-server 后 PHP 的版本变 5.6 ?
0 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
kingjian
Composer require "Laravel/horizon:~1.0"报错,是 PHP 版本太低吗?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
Janpun
队列如何判断任务是成功还是失败了
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
lizhen_hahaha
谁知道啥意思啊?
0 个点赞 | 5 个回复 | 问答 | 课程版本 5.5
YeMou
redis 拒绝连接(已解决)
0 个点赞 | 4 个回复 | 分享 | 课程版本 6.x
dokiss
修改环境变量 QUEUE_DRIVER 的值为 Redis
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.7
Luff
问下,怎么获取某个队列任务是否执行完
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
chaofu
安装 Horizon 保錯?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
dokiss
Redis连接被拒绝 Connection refused [tcp://127.0.0.1:6379]
0 个点赞 | 3 个回复 | 问答 | 课程版本 7.x
Cyline
队列监听无效
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
phpervip
使用队列后,为何没有生成 slug,Horizon 没有显示错误
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.8
DanielDu
Horizon 路由前缀怎么修改?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
Horizon 队列监控安全访问的问题
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
kingjian
执行 PHP artisan horizon 报错,求解?那位大佬知道
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
thjxs
标题 Slug
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
hehorange
怎么删除 horizon 中失败的任务?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
oneSmile
使用队列后,新建话题成功后没有消息提示?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
Raymond3689
启动 Horizon 时报错?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
Mengwei
安装 Horizon 出现了报错信息,请教一下如何解决呢
0 个点赞 | 2 个回复 | 问答 | 课程版本 6.x
wongvio
加入队列以后报错,但是 Laravel 报错乱码
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.8
黑哈尔
队列执行报错 Undefined property: App\Jobs\TranslateSlug::$topic
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.7
Bin
http://larabbs.test/horizon 的默认路由是在哪配置的?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
tooyond
教程里的保存按钮为什么会有进度条?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
xiaofan086
\DB::table ('topics') 前面的 \ 什么意思?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
SnowZh
安装 Redis 依赖失败,该从哪里排查?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
LuckyStarD89
Laravel 自带的队列系统与 rabbitMQ 这种队列有什么不同吗?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
justlovelmn
消息队列的实际作用是什么?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
jack007
关于 listen 与 horizon 的问题?
0 个点赞 | 2 个回复 | 问答 | 课程版本 5.5
万网,西数等虚拟空间怎么运行artisan和实现定时任务呢
0 个点赞 | 1 个回复 | 问答 | 课程版本 8.x
宋高峰
分享一个安装Horizon时PHP报错内存不足的问题解决办法
0 个点赞 | 1 个回复 | 分享 | 课程版本 6.x
lujiancai
本节在 Topic 模型观察器中进行任务分发后就报错了
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
friendOfTime
Composer require ... 的报错
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.8
时俊
使用 compose 安装 Laravel/horizon:~1.3 报错?内存不足
0 个点赞 | 1 个回复 | 分享 | 课程版本 5.7
xxr_yeah
Composer 队列时出现问题
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
hehorange
运行队列监听出现一个诡异的错误
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.7
将狼踩尽
Horizon 安装不起来,用的是 XAMPP
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
hustnzj
相伟
Command "queue:filed-table" is not defined.
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
phpstack
Composer require Laravel/horizon 报错了,怎么解决?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
剑尘
如果是批量插入 怎么 发布任务???
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
Blucas
为什么执行 PHP artisan queue:listen 命令有异常?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.5
安装horizon可能会出现的问题
0 个点赞 | 0 个回复 | 分享 | 课程版本 8.x
oOops
开发时建议不要使用翻译api
0 个点赞 | 0 个回复 | 分享 | 课程版本 8.x
is_null
更改标题重新生成slug
0 个点赞 | 0 个回复 | 分享 | 课程版本 7.x
olaf
PHP artisan horizon 无法监听
0 个点赞 | 0 个回复 | 分享 | 课程版本 6.x
裴雷
Horizon 队列不成功的一个错误
0 个点赞 | 0 个回复 | 问答 | 课程版本 6.x
JHWu
horizon 安装成功,无界面,显示{"msg":""}
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.5
岁月不居
slug 创建问题
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.5
qianfan
lijianbo2004
当创建话题 点击保存后报错 404
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.5
purson
请问怎样获取队列任务里面的返回值?
0 个点赞 | 0 个回复 | 问答 | 课程版本 5.5