// complete optionally requeues key, then calls queue.Done(key) func (e *TokensController) retryOrForget(queue workqueue.RateLimitingInterface, key interface{}, requeue bool) { if !requeue { queue.Forget(key) return } requeueCount := queue.NumRequeues(key) if requeueCount < e.maxRetries { queue.AddRateLimited(key) return } glog.V(4).Infof("retried %d times: %#v", requeueCount, key) queue.Forget(key) }