作者:星晴(當地小有名氣,小到只有自己知道的傑倫粉)
吐槽了這么多,還是回歸正題,今天給大家分享一下我們項目中如何通過延時隊列實現超時任務處理機制。
生產代碼就不展示了,就一個Demo來玩吧
DelayQueue
作用:根據執行時間進行排序,然后等待到執行時間,就能獲取到相對的數據
應用場景:超時任務處理
1.創建DelayTask 實現Delayed
屬性說明:
-
executeTime 延時任務的執行時間
-
taskType 任務類型
-
msg 具體執行的任務數據
方法:
-
getDelay() 返回還剩多少時間執行: 通過任務執行時間減去當前時間
-
compareTo() 返回排序大小: 隊列之間的執行時間排序
2.創建延遲隊列處理器
說明:
-
while循環獲取隊列
-
delayQueue.take(),有數據就返回,沒數據就等待
3.創建Test類
輸出結果:
如果還有什么不懂,歡迎在下面留言!!!
關注公眾號,有更多好玩的等着你!!!