Add an Enqueue method to framework.Controller

Allows clients to requeue delta events in the event they
need to delay processing.
pull/6/head
Clayton Coleman 2015-06-04 15:55:15 -04:00
parent 213e7a8ab6
commit 61c7beb51f
1 changed files with 10 additions and 0 deletions

View File

@ -106,6 +106,16 @@ func (c *Controller) HasSynced() bool {
return c.reflector.LastSyncResourceVersion() != ""
}
// Requeue adds the provided object back into the queue if it does not already exist.
func (c *Controller) Requeue(obj interface{}) error {
return c.config.Queue.AddIfNotPresent(cache.Deltas{
cache.Delta{
Type: cache.Sync,
Object: obj,
},
})
}
// processLoop drains the work queue.
// TODO: Consider doing the processing in parallel. This will require a little thought
// to make sure that we don't end up processing the same object multiple times