WorkQueue
Class: WorkQueue
Defined in: kubernetes/src/operator/workqueue.ts:38
Queue of keys to process, as the work queue of a Kubernetes controller
A key is never processed twice at the same time: added while queued it is queued once, added while processed it is processed again once done. A failure processes the key again after an exponential backoff, a result can ask to process it again after a delay.
Constructors
Constructor
new WorkQueue(
handler,options?):WorkQueue
Defined in: kubernetes/src/operator/workqueue.ts:56
Parameters
handler
(key) => Promise<WorkResult>
process a key
options?
WorkQueueOptions = {}
concurrency and backoff
Returns
WorkQueue
Properties
baseDelay
protectedbaseDelay:number
Defined in: kubernetes/src/operator/workqueue.ts:49
concurrency
protectedconcurrency:number
Defined in: kubernetes/src/operator/workqueue.ts:48
dirty
protecteddirty:Set<string>
Defined in: kubernetes/src/operator/workqueue.ts:43
keys added while processed
failures
protectedfailures:Map<string,number>
Defined in: kubernetes/src/operator/workqueue.ts:44
handler
protectedhandler: (key) =>Promise<WorkResult>
Defined in: kubernetes/src/operator/workqueue.ts:57
process a key
Parameters
key
string
Returns
Promise<WorkResult>
idle
protectedidle: (() =>void)[] =[]
Defined in: kubernetes/src/operator/workqueue.ts:47
Returns
void
maxDelay
protectedmaxDelay:number
Defined in: kubernetes/src/operator/workqueue.ts:50
options
protectedoptions:WorkQueueOptions={}
Defined in: kubernetes/src/operator/workqueue.ts:58
concurrency and backoff
processing
protectedprocessing:Set<string>
Defined in: kubernetes/src/operator/workqueue.ts:41
queue
protectedqueue:string[] =[]
Defined in: kubernetes/src/operator/workqueue.ts:39
queued
protectedqueued:Set<string>
Defined in: kubernetes/src/operator/workqueue.ts:40
stopped
protectedstopped:boolean=false
Defined in: kubernetes/src/operator/workqueue.ts:46
timers
protectedtimers:Map<string,Timeout>
Defined in: kubernetes/src/operator/workqueue.ts:45
Accessors
depth
Get Signature
get depth():
number
Defined in: kubernetes/src/operator/workqueue.ts:68
Returns
number
the keys waiting to be processed
Methods
add()
add(
key):void
Defined in: kubernetes/src/operator/workqueue.ts:76
Process a key as soon as possible
Parameters
key
string
the key
Returns
void
addAfter()
addAfter(
key,delay):void
Defined in: kubernetes/src/operator/workqueue.ts:95
Process a key after a delay, unless it is added before
Parameters
key
string
the key
delay
number
milliseconds
Returns
void
drain()
drain():
Promise<void>
Defined in: kubernetes/src/operator/workqueue.ts:123
Returns
Promise<void>
once no key is queued nor processed
process()
protectedprocess(key):Promise<void>
Defined in: kubernetes/src/operator/workqueue.ts:147
Process a key, then schedule it again if needed
Parameters
key
string
the key
Returns
Promise<void>
pump()
protectedpump():void
Defined in: kubernetes/src/operator/workqueue.ts:131
Start processing the queued keys, up to the concurrency
Returns
void
stop()
stop():
Promise<void>
Defined in: kubernetes/src/operator/workqueue.ts:110
Stop processing: the pending keys are dropped
Returns
Promise<void>
once the keys being processed are done