微商城 微網(wǎng)站制作360應(yīng)用商店
目錄
一、前言
二、延遲任務(wù)的高頻使用場景
三、延遲任務(wù)常用解決方案
3.1 Quartz
3.2 DelayQueue
3.2.1 Timer + TimerTask
3.2.2 ScheduledExecutorService
3.3 Redis sorted set
3.4 RabbitMQ
四、Redis實現(xiàn)延時隊列操作實戰(zhàn)
4.1 Redis Sorted Set 概述
4.1.1 Redis Sorted Set 介紹
4.1.2 Redis Sorted Set 主要特點
4.1.3 Redis Sorted Set 應(yīng)用場景
4.1.4 核心實現(xiàn)思路
4.2 Jedis 實現(xiàn)延遲隊列
4.2.1 前置準(zhǔn)備
4.2.2 代碼操作演示
4.3 SpringBoot 整合Redis實現(xiàn)延遲隊列
4.3.1 添加依賴
4.3.2 添加配置文件
4.3.3 自定義redis序列化類
4.3.4 定義抽象任務(wù)
4.3.5 定義任務(wù)通知類
4.3.6 定義任務(wù)管理器
4.3.7 添加測試接口
4.3.8 效果測試
4.4 使用Redisson 實現(xiàn)延時任務(wù)隊列
4.4.1 導(dǎo)入依賴
4.4.2 添加配置類
4.4.3 添加自定義消息監(jiān)聽類
4.4.4 自定義任務(wù)阻塞隊列
4.4.5 添加測試接口
五、寫在文末
一、前言
在分布式微服務(wù)開發(fā)中,延遲(延時)任務(wù)的場景或需求可以說很多,比如大家熟悉的下單之后允許延后15分鐘完成支付,或者某些因為業(yè)務(wù)的原因需要延遲執(zhí)行的場景等,同時延遲任務(wù)的存在,也讓系統(tǒng)或業(yè)務(wù)有了更多的可擴展空間,本文將通過案例操作演示下如何基于Redis實現(xiàn)延時任務(wù)的解決方案。
二、延遲任務(wù)的高頻使用場景
下面是幾種在日常開發(fā)中高頻接觸到的延遲任務(wù)場景:
-
訂單超時自動處理
-
在電商領(lǐng)域,延遲隊列對于處理訂單超時問題至關(guān)重要。一旦用戶下單,訂單信息便進入延遲隊列,并預(yù)設(shè)超時時長。若用戶在此時間內(nèi)未完成支付,訂單信息將由消費者從隊列中提取,并執(zhí)行如取消訂單、庫存釋放等后續(xù)操作,高效且自動化。
-
-