Laravel 消息队列实战


课程简介

首先需要声明的是,本系列教程整理自 Laravel Queue In Action,不过学院君会针对表述、场景、案例及部署环境做调整,不是逐字翻译,有条件的同学可以去购买这本电子书对作者进行支持,我觉得国外值得购买的付费 Laravel 资源,首推 Laracasts 订阅会员,其次就是这本电子书了。

书归正传,我们知道,PHP 串行化代码执行的可预测性和简单易上手使其一度成为后端 Web 开发世界中最受欢迎的语言(此处应该有口号:PHP 是世界上最好的语言~),但是多年来,编写在多个进程中执行业务逻辑的 PHP 程序是非常困难的,直到 Laravel 的出现及其支持的队列功能。

Swoole 是另一个解决方案了,这里以 PHP-FPM 驱动的 PHP Web 应用为讨论场景。

如果你在 Laravel 之前使用过基于 PHP 的队列系统,你已经知道 Laravel 的队列系统所带来的价值,Laravel 队列系统的简单性让开发者更容易受益于通过队列处理器进程在后台做额外的工作,同时让 HTTP 前台应用有足够的敏捷性来服务更多的客户。

关于 Laravel 队列系统的基本概念、组成部件和实现原理,学院君已经在基于 Redis 实现 Laravel 消息队列系统及底层源码探究 这篇教程中说的很清楚了,所以这个系列将直接从使用场景开始,重点介绍消息队列在 Laravel 项目中的使用案例和线上运维,如果你觉得有点突兀,可以先去阅读这篇教程。

本系列教程的目录索引如下:

先导篇

使用实例

  • 发送邮箱验证消息
  • 队列优先级
  • 重试失败任务
  • 取消已放弃的订单
  • 发送 Webhook
  • 取消会议及退款
  • 避免重复退款
  • 批处理退款订单
  • 监控退款过程
  • 售卖会议门票
  • 峰值检测
  • 发送月度账单
  • 处理 API 请求频率限制
  • 限制任务并发
  • 限制任务频率
  • 处理不稳定的服务
  • 服务未响应
  • 重构任务中间件
  • 处理视频上传
  • 提供一个无服务器数据库
  • 生成复杂报告
  • 消息聚合
  • 奖励忠实用户
  • 发送部署通知

线上运维

  • 选择正确的机器配置
  • 保持队列处理器进程的运行
  • 扩展队列处理器进程
  • 使用 Laravel Horizon 管理扩展
  • 处理失败
  • 选择正确的队列驱动
  • 使用 Redis 驱动
  • Serverless 队列
  • 管理任务重试
  • 部署时处理任务
  • 设计可靠的队列任务
  • Command Bus

配置参考

  • 处理器进程
  • 队列任务
  • 队列连接
  • Horizon

公众号订阅

该系列文章会同步到学院君的微信公众号,如果你想要在手机上获取更好的阅读体验,欢迎扫码订阅:

学院君公众号

购买订阅服务

如果你觉得这个系列教程对你学习有帮助,可以选择升级为学院君订阅用户对学院君进行支持:

立即升级为学院君订阅用户


点赞 取消点赞 收藏 取消收藏

<< 上一篇: 没有上一篇了

>> 下一篇: 发送邮箱验证消息