2020-09-16 14:19:51 +00:00
|
|
|
// Copyright 2020 the Pinniped contributors. All Rights Reserved.
|
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
2020-08-28 15:59:09 +00:00
|
|
|
|
|
|
|
package controllerlib
|
|
|
|
|
|
|
|
import (
|
|
|
|
"time"
|
|
|
|
|
|
|
|
"k8s.io/client-go/util/workqueue"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Queue interface {
|
|
|
|
// Add immediately adds a key to the queue and marks it as needing processing.
|
|
|
|
Add(key Key)
|
|
|
|
|
|
|
|
// AddRateLimited adds a key to the queue after the rate limiter says it is ok.
|
|
|
|
AddRateLimited(key Key)
|
|
|
|
|
|
|
|
// AddAfter adds a key to the queue after the indicated duration has passed.
|
|
|
|
AddAfter(key Key, duration time.Duration)
|
|
|
|
}
|
|
|
|
|
|
|
|
var _ Queue = &queueWrapper{}
|
|
|
|
|
|
|
|
type queueWrapper struct {
|
|
|
|
queue workqueue.RateLimitingInterface
|
|
|
|
}
|
|
|
|
|
|
|
|
func (q *queueWrapper) Add(key Key) {
|
|
|
|
q.queue.Add(key)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (q *queueWrapper) AddRateLimited(key Key) {
|
|
|
|
q.queue.AddRateLimited(key)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (q *queueWrapper) AddAfter(key Key, duration time.Duration) {
|
|
|
|
q.queue.AddAfter(key, duration)
|
|
|
|
}
|