实战:定时任务案例
我在開發(fā)的時(shí)候曾經(jīng)遇到了這樣一個(gè)問(wèn)題,產(chǎn)品要求給每個(gè)在線預(yù)約看病的患者,距離預(yù)約時(shí)間的前一天發(fā)送一條提醒推送,以防止患者錯(cuò)過(guò)看病的時(shí)間。這個(gè)時(shí)候就要求我們給每個(gè)人設(shè)置一個(gè)定時(shí)任務(wù),用前面文章說(shuō)的延遲隊(duì)列也可以實(shí)現(xiàn),但延遲隊(duì)列的實(shí)現(xiàn)方式需要開啟一個(gè)無(wú)限循環(huán)任務(wù),那有沒(méi)有其他的實(shí)現(xiàn)方式呢?
答案是肯定的,接下來(lái)我們就用 Keyspace Notifications(鍵空間通知)來(lái)實(shí)現(xiàn)定時(shí)任務(wù),定時(shí)任務(wù)指的是指定一個(gè)時(shí)間來(lái)執(zhí)行某個(gè)任務(wù),就叫做定時(shí)任務(wù)。
開啟鍵空間通知
默認(rèn)情況下 Redis 服務(wù)器端是不開啟鍵空間通知的,需要我們手動(dòng)開啟。
鍵空間開啟分為兩種方式:
- 命令設(shè)置方式
- 配置文件設(shè)置方式
接下來(lái),我們分別來(lái)看。
命令設(shè)置方式
使用 redis-cli 連接到服務(wù)器端之后,輸入 config set notify-keyspace-events Ex 命令,可以直接開啟鍵空間通知功能,返回“OK”則表示開啟成功,如下命令所示:
127.0.0.1:6379> config set notify-keyspace-events Ex OK優(yōu)點(diǎn):
- 設(shè)置方便,無(wú)序啟動(dòng) Redis 服務(wù)。
缺點(diǎn):
- 這種方式設(shè)置的配置信息是存儲(chǔ)在內(nèi)存中的,重啟 Redis 服務(wù)之后,配置項(xiàng)會(huì)丟失。
配置文件設(shè)置方式</
總結(jié)
- 上一篇: 高质量SQL的30条建议!(后端必备)
- 下一篇: 八种常见的 SQL 错误用法