亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

K8S WorkQueue 設計與實現(二)

2023-10-17 01:27:56
12
0

WorkQueue 是 Kubernetes 的一個隊列實現,屬于 client-go 庫的 workqueue 包,其作為 K8S Controller 的重要組成部份,在資源變化時將資源寫入 WorkQueue 中,再由具體的 worker 去消費執行

上文我們講解了 WorkQueue 基本隊列的設計與實現

本文描述其另外一個隊列,延時隊列 delaying queue 的實現

 

延時隊列

接口聲明

基本隊列的接口聲明

type DelayingInterface interface {  
   // 組合基礎隊列的接口
   Interface  
   // 在指定時間后將元素加入隊列
   AddAfter(item interface{}, duration time.Duration)  
}

可見,延時隊列的接口什么就比基礎隊列的多了個 AddAfter 方法,延遲元素加入的時間

 

接口實現

讓我們看一下延時隊列的實現

type delayingType struct {
	// 基本隊列,完成隊列的主要功能
	Interface
	// 一個緩沖隊列存放延遲的元素(元素使用 watiFor 封裝)
	waitingForAddCh chan *waitFor
	...
}

type waitFor struct {
	// 元素本體
	data    t
	// 可以入隊的時間點
	readyAt time.Time
	// 優先隊列的索引
	index int
}

 

delayingType 對 AddAfter 的實現分為2個階段

1. 將需要延時的元素封裝為 waitFor 結構,傳入 waitingForAddCh 通道

2. 一個 goroutine 執行 waitingLoop,循環消費 waitingForAddCh 里的數據,其會通過維護一個 heap 隊列 waitingForQueue,對延時元素按入隊的時間點進行排序,最終入隊時的提高效率

0條評論
0 / 1000
LinHeng
3文章數
0粉絲數
LinHeng
3 文章 | 0 粉絲
LinHeng
3文章數
0粉絲數
LinHeng
3 文章 | 0 粉絲
原創

K8S WorkQueue 設計與實現(二)

2023-10-17 01:27:56
12
0

WorkQueue 是 Kubernetes 的一個隊列實現,屬于 client-go 庫的 workqueue 包,其作為 K8S Controller 的重要組成部份,在資源變化時將資源寫入 WorkQueue 中,再由具體的 worker 去消費執行

上文我們講解了 WorkQueue 基本隊列的設計與實現

本文描述其另外一個隊列,延時隊列 delaying queue 的實現

 

延時隊列

接口聲明

基本隊列的接口聲明

type DelayingInterface interface {  
   // 組合基礎隊列的接口
   Interface  
   // 在指定時間后將元素加入隊列
   AddAfter(item interface{}, duration time.Duration)  
}

可見,延時隊列的接口什么就比基礎隊列的多了個 AddAfter 方法,延遲元素加入的時間

 

接口實現

讓我們看一下延時隊列的實現

type delayingType struct {
	// 基本隊列,完成隊列的主要功能
	Interface
	// 一個緩沖隊列存放延遲的元素(元素使用 watiFor 封裝)
	waitingForAddCh chan *waitFor
	...
}

type waitFor struct {
	// 元素本體
	data    t
	// 可以入隊的時間點
	readyAt time.Time
	// 優先隊列的索引
	index int
}

 

delayingType 對 AddAfter 的實現分為2個階段

1. 將需要延時的元素封裝為 waitFor 結構,傳入 waitingForAddCh 通道

2. 一個 goroutine 執行 waitingLoop,循環消費 waitingForAddCh 里的數據,其會通過維護一個 heap 隊列 waitingForQueue,對延時元素按入隊的時間點進行排序,最終入隊時的提高效率

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0