code: func (ssc *StatefulSetController) processNextWorkItem() bool {
  	key, quit := ssc.queue.Get()
  	if quit {
  		return false
  	}
  	defer ssc.queue.Done(key)
  	if err := ssc.sync(key.(string)); err != nil {
  		utilruntime.HandleError(fmt.Errorf("Error syncing StatefulSet %v, requeuing: %v", key.(string), err))
  		ssc.queue.AddRateLimited(key)
  	} else {
  		ssc.queue.Forget(key)
  	}
  	return true
  }
docs: // processNextWorkItem dequeues items, processes them, and marks them done. It enforces that the syncHandler is never
  // invoked concurrently with the same key.