亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用redis解決負載均衡定時任務重復執行問題

發布時間:2021-11-10 18:37:52 來源:億速云 閱讀:632 作者:柒染 欄目:大數據

本篇文章為大家展示了如何使用redis解決負載均衡定時任務重復執行問題,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

原理:redis里邊 setnx方法進行設置時,如果key已存在,則不添加,key不存在,則進行添加;同時因為redis是單線程的所以不存在安全問題

代碼部分邏輯: 1、以定時任務的任務id作為key,任意字符串值(這里使用"true")作為value,設置進redis

2、通過redis中setnx(添加一個key,如果key已存在,則不添加)判斷該任務是否執行,如果result為true,則未執行,為false則已執行,定時任務直接return

3、為上邊的key設置一個緩存存活時間(放置代碼執行過程出現問題,導致緩存未刪除,從而導致定時任務只執行一次,建議設置時間遠小于定時任務時間間隔)

4、定時任務內容執行完畢后,刪除之前設置的緩存,同時關閉redis連接(保證一次定時任務執行完之后再執行下次定時任務)

具體代碼如下

JobKey key=jobExecutionContext.getJobDetail().getKey();
String taskId=key.getName();//redis中setnx(添加一個key,如果key已存在,則不添加)判斷該任務是否執行,如果result為true,則未執行,為false則已執行,定時任務直接returnRedisConnection connection=redisTemplate.getConnectionFactory().getConnection();boolean setNXResult=  connection.setNX(taskId.getBytes(),"true".getBytes());if(!setNXResult){   return;
}
run();
connection.del(taskId.getBytes());
connection.close();

上述內容就是如何使用redis解決負載均衡定時任務重復執行問題,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清远市| 专栏| 鄂托克前旗| 奉贤区| 土默特右旗| 广昌县| 闸北区| 石棉县| 盐山县| 齐齐哈尔市| 巴里| 隆安县| 抚松县| 巫溪县| 浪卡子县| 乌兰浩特市| 临夏县| 东乌珠穆沁旗| 永登县| 连城县| 应城市| 黑水县| 肇庆市| 十堰市| 长葛市| 湖州市| 龙游县| 大厂| 灵川县| 洛宁县| 沧州市| 平武县| 淳安县| 彩票| 海伦市| 甘谷县| 乐昌市| 玉屏| 博兴县| 夹江县| 漾濞|