目录
一、前言
二、延迟任务的高频使用场景
三、延迟任务常用解决方案
3.1 Quartz
3.2 DelayQueue
3.2.1 Timer + TimerTask
3.2.2 ScheduledExecutorService
3.3 Redis sorted set
3.4 RabbitMQ
四、Redis实现延时队列操作实战
4.1 Redis Sorted Set 概述
4.1.1 Redis Sorted Set 介绍
4.1.2 Redis Sorted Set 主要特点
4.1.3 Redis Sorted Set 应用场景
4.1.4 核心实现思路
4.2 Jedis 实现延迟队列
4.2.1 前置准备
4.2.2 代码操作演示
4.3 SpringBoot 整合Redis实现延迟队列
4.3.1 添加依赖
4.3.2 添加配置文件
4.3.3 自定义redis序列化类
4.3.4 定义抽象任务
4.3.5 定义任务通知类
4.3.6 定义任务管理器
4.3.7 添加测试接口
4.3.8 效果测试
4.4 使用Redisson 实现延时任务队列
4.4.1 导入依赖
4.4.2 添加配置类
4.4.3 添加自定义消息监听类
4.4.4 自定义任务阻塞队列
4.4.5 添加测试接口
五、写在文末
一、前言
在分布式微服务开发中,延迟(延时)任务的场景或需求可以说很多,比如大家熟悉的下单之后允许延后15分钟完成支付,或者某些因为业务的原因需要延迟执行的场景等,同时延迟任务的存在,也让系统或业务有了更多的可扩展空间,本文将通过案例操作演示下如何基于Redis实现延时任务的解决方案。
二、延迟任务的高频使用场景
下面是几种在日常开发中高频接触到的延迟任务场景:
-
订单超时自动处理
-
在电商领域,延迟队列对于处理订单超时问题至关重要。一旦用户下单,订单信息便进入延迟队列,并预设超时时长。若用户在此时间内未完成支付,订单信息将由消费者从队列中提取,并执行如取消订单、库存释放等后续操作,高效且自动化。
-
-