使用实例
发送邮箱验证消息
通过前面两篇先导篇教程,想必你已经对 Laravel 消息队列的基本使用和底层实现有了大致的了解,接下来,我们来具体介绍消息队列在 ...
队列优先级
关于队列优先级,学院君在先导篇中已经简单介绍过了,这里再系统介绍下。 Laravel 是在处理消息队列时通过指定不同队列的前后顺序...
重试执行失败的队列任务
失败队列任务重试 Laravel 消息队列支持对执行失败的任务进行重试(详见 Laravel 队列文档处理失败的任务部分),执行失...
自动取消已放弃的订单
自动取消过期订单 今天我们来看另一个需要借助消息队列异步处理的业务场景 —— 取消已经放弃的订单。 在网上购物商城,我们需要为已...
发送 Webhook 实现跨应用异步回调
异步发送 Webhook 除了邮件发送和定时任务调度外,我们还可以通过消息队列异步对第三方服务发起网络请求,就像 JavaScr...
取消会议和自动退款处理
2020 年,因为新冠疫情原因很多行业交流会议被取消,这就涉及到如何处理退款,理想的场景是当我们在系统管理界面点击取消按钮时,就会在...
通过幂等设计和原子锁避免重复退款
幂等性设计 我们回顾下上篇教程创建的 RefundAttendee 任务类,它会做两件事情 —— 退款和发送邮件: 如果这个...
通过队列批处理退款订单
上篇教程我们看到了将单个耗时队列任务拆分成多个子任务的好处: 但是这也引入了新的问题,如果使用 Redis 作为队列驱动,会存...
监控退款任务批处理过程
上篇教程学院君给大家介绍了如何通过批处理一次性执行多个队列任务,对于这种批处理场景,如果我们不知道目前的处理进度心里总是会发慌:什么...
异步处理会议门票支付及竞态条件处理
好了,经过全国和全世界人民的共同努力,假设现在新冠病毒在全球范围内终于被控制住了,各种行业开始复苏,各种国际和行业交流会议又开始恢复...
业务流量峰值检测和数据一致性
业务流量有尖峰听起来不错,但是当尖峰到来时需要通知开发者以便有足够的资源(CPU、内存等)应对。 检测流量尖峰并发送通知 假设我...
定期生成并发送月账单
对于一个国际化应用,生成月度账单时通常以美金计算,但是发送给用户的时候需要按照本地货币单位展示。 月账单生成任务类 我们在推送账...
处理有访问频率限制的 API 请求
如果你的应用需要和第三方服务打交道,则很有可能需要处理接口访问频率限制。下面我们就来看看在队列任务中如何处理有访问频率限制的 API...
限制队列任务的并发数量
业务场景 先说下业务场景:商业公司通常会允许客户按需生成报表,但每个用户同时只允许生成 5 份报表。 对于生成报表这种耗时的磁盘...
限制队列任务的执行频率
上篇教程我们实现了队列任务的并发执行数量限制,这可以通过 Redis::funnel 方法实现: 今天我们来看看如何实现队列任...
通过熔断器处理不稳定的外部服务
假设有这样的一个业务场景:有个外部请求服务接口每隔几天就会挂掉,不稳定,这个时候从队列任务中向该接口发起的 HTTP 请求会返回 5...
处理外部服务接口未响应
处理服务未响应异常 队列任务中调用的外部服务接口除了返回 500 错误码之外,有时候可能没有任何响应,要处理这种情况,我们可以在发...
基于队列任务中间件重构服务熔断器
在前面的示例中,我们都是在队列任务类中编写大量的、与队列任务本身无关的代码,以及应用频率限制器和服务熔断器。 为了避免在真正的任务...
异步高效处理视频上传
通过队列处理上传 对于图片、文件、视频上传之类的耗时任务,可以将上传到服务端后的压缩、处理和存储操作推送到消息队列异步处理: ...
通过云服务 API 创建无服务器(Serverless)数据库
下面我们来演示如何在 AWS 中创建一个无服务器的数据库。 国内腾讯云、阿里云亦可,基本流程一样,具体的 API 不同而已,你...
基于任务链和批处理生成复杂报告
数据的尺寸和结构决定了生成报告的复杂性和耗时,将其放到后台执行可以让响应更快,同时更高效地使用系统资源。 对于一个很大的电子表格,...
为用户聚合来自不同社交平台的消息流
本篇示例教程的主题是聚合来自不同社交媒体的消息并将它们导入单一的客户支持平台。 每个集成的消息平台通过调用 Webhook 给我们...
通过事件监听器异步发放优惠券
事件与事件监听器 在基于事件驱动程序构建的应用中,一个事件可能有多个事件监听器,以 NewOrderSubmitted 事件为例,...
异步发送应用部署通知
今天我们讨论的主题是在应用部署成功后发送通知给关联用户。 应用部署后发送通知 不同用户可能会使用不同的通知接收工具,有些使用邮件...
No Comments