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:87
Create a new WorkQueue instance
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:76
Base delay
concurrency
protectedconcurrency:number
Defined in: kubernetes/src/operator/workqueue.ts:72
Concurrency
dirty
protecteddirty:Set<string>
Defined in: kubernetes/src/operator/workqueue.ts:52
keys added while processed
failures
protectedfailures:Map<string,number>
Defined in: kubernetes/src/operator/workqueue.ts:56
Failures
handler
protectedhandler: (key) =>Promise<WorkResult>
Defined in: kubernetes/src/operator/workqueue.ts:88
process a key
Parameters
key
string
Returns
Promise<WorkResult>
idle
protectedidle: (() =>void)[] =[]
Defined in: kubernetes/src/operator/workqueue.ts:68
Idle
Returns
void
maxDelay
protectedmaxDelay:number
Defined in: kubernetes/src/operator/workqueue.ts:80
Max delay
options
protectedoptions:WorkQueueOptions={}
Defined in: kubernetes/src/operator/workqueue.ts:89
concurrency and backoff
processing
protectedprocessing:Set<string>
Defined in: kubernetes/src/operator/workqueue.ts:50
Processing
queue
protectedqueue:string[] =[]
Defined in: kubernetes/src/operator/workqueue.ts:42
Queue
queued
protectedqueued:Set<string>
Defined in: kubernetes/src/operator/workqueue.ts:46
Queued
stopped
protectedstopped:boolean=false
Defined in: kubernetes/src/operator/workqueue.ts:64
Stopped
timers
protectedtimers:Map<string,Timeout>
Defined in: kubernetes/src/operator/workqueue.ts:60
Timers
Accessors
depth
Get Signature
get depth():
number
Defined in: kubernetes/src/operator/workqueue.ts:100
Get the keys waiting to be processed
Returns
number
the keys waiting to be processed
Methods
add()
add(
key):void
Defined in: kubernetes/src/operator/workqueue.ts:108
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:127
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:156
Drain operation
Returns
Promise<void>
once no key is queued nor processed
process()
protectedprocess(key):Promise<void>
Defined in: kubernetes/src/operator/workqueue.ts:180
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:164
Start processing the queued keys, up to the concurrency
Returns
void
stop()
stop():
Promise<void>
Defined in: kubernetes/src/operator/workqueue.ts:142
Stop processing: the pending keys are dropped
Returns
Promise<void>
once the keys being processed are done