日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Redis超時(shí)處理法優(yōu)雅解決超時(shí)問題(redis超時(shí)怎么處理)

Redis超時(shí)處理法是將超時(shí)處理任務(wù)與檢測超時(shí)分離,分別由定期嘗試調(diào)用超時(shí)處理函數(shù)和將執(zhí)行即將超時(shí)任務(wù)及其超時(shí)時(shí)間存儲在Redis中兩個(gè)客戶端來完成。

### 一、客戶端1——定期嘗試調(diào)用超時(shí)處理函數(shù)

定期嘗試調(diào)用超時(shí)處理函數(shù)的客戶端一般是一個(gè)Redis服務(wù)器的客戶端,每隔一段時(shí)間(比如1-3秒)從Redis中取出超時(shí)任務(wù),然后調(diào)用其超時(shí)處理函數(shù),完成超時(shí)處理任務(wù)。此客戶端的大體步驟如下:

1. 從Redis的list類型的key中獲取需要處理的任務(wù);

2. 調(diào)用任務(wù)相關(guān)的超時(shí)處理函數(shù);

3. 刪除已處理的任務(wù);

以Node.js為例,定期嘗試調(diào)用超時(shí)處理函數(shù)的客戶端可以編寫成如下代碼:

“`js

const Redis = require(‘ioredis’);

const redis = new Redis();

const rpopAndDoTimeout = async function () {

let listKey = `timeout-task-list`;

const taskObj = awt redis.rpop(listKey);

if (taskObj) {

const timeoutEntity = JSON.parse(taskObj);

doTaskTimeout(timeoutEntity);

}

};

// 定時(shí)任務(wù)

setInterval(rpopAndDoTimeout, 1000);


### 二、 客戶端2——將執(zhí)行即將超時(shí)任務(wù)及其超時(shí)時(shí)間存儲在Redis中

將執(zhí)行即將超時(shí)任務(wù)及其超時(shí)時(shí)間存儲在Redis中一般是另一個(gè)Redis服務(wù)器的客戶端,用戶每次產(chǎn)生一個(gè)新任務(wù)或者修改已有任務(wù),都會通過此客戶端將該任務(wù)及其超時(shí)時(shí)間存入Redis中。其大體步驟如下:

1. 用戶提交新任務(wù);
2. 計(jì)算并設(shè)置任務(wù)的超時(shí)時(shí)間;
3. 將任務(wù)及其超時(shí)時(shí)間(使用EPOCH時(shí)間格式存儲)組裝成任務(wù)信息放入Redis的list類型的key;

以Python為例,將執(zhí)行即將超時(shí)任務(wù)及其超時(shí)時(shí)間存儲在Redis中的客戶端可以編寫成如下代碼:

```py
import json
import redis
import time
def pushTimeoutTaskToRedis(timeoutEntity):
# T【任務(wù)超時(shí)時(shí)間】
T = time.time() + timeoutEntity.timeout
task_obj = {
"id": timeoutEntity.id,
"ttl": T
}

task_str = json.dumps(task_obj)

# 將任務(wù)放入Redis中
r = redis.Redis(host='localhost', port=6379, db=0)
list_key = "timeout-task-list"
r.lpush(list_key, task_str)

通過以上兩個(gè)客戶端設(shè)計(jì),就可以用redis來實(shí)現(xiàn)優(yōu)雅解決超時(shí)問題。

香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。


網(wǎng)站欄目:Redis超時(shí)處理法優(yōu)雅解決超時(shí)問題(redis超時(shí)怎么處理)
標(biāo)題鏈接:http://www.5511xx.com/article/ccegdsh.html