kafka時間輪

舉個例子:
第一層時間輪格數(shù)是10,每格表示1ms。
第二層時間輪格數(shù)是20,每格表示上一層時間輪的總和:10*1ms=10ms
每個格子對應一個任務鏈表,這樣插入只需常數(shù)時間

某一時刻第一層時間輪指針指向16,此時插入一個30ms后需要執(zhí)行的任務,就把這個任務插入到16+30/10=19號時間輪格子。
某一時刻第一層時間輪指針指向2, 此時如果要插入一個52ms后需要執(zhí)行的任務,可以把該任務插入第二層時間輪52/10+2=7號格子。當執(zhí)行到7號格子時,發(fā)現(xiàn)還有2ms才能執(zhí)行,就把這個任務放到第一層時間輪里。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容