1.背景

在自定义contoller中,官方推荐做法涉及到这个workqueue
workqueue 代码分析 - 图1
这个Workqueue队列的实现有如下特点:

  • 公平性: 先进先处理.

  • 去冗余: 一个对象不会同时被多个进程处理。如果相同对象在被处理前重复加入,只会保留一个待处理

  • 支持多个生产者和消费者: 如果一个对象正在被处理,则允许再次进入队列。

  • 支持关闭通知。

本文尝试分析一下其代码结构以及实现的特点,供学习使用。
源码地址: k8s.io/client-go/util/workqueue

2.类图

workqueue 代码分析 - 图2