code: func (j *janitorRunner) runCleaning() {
  	dead, err := j.detector.Detect()
  	if err != nil {
  		j.errs <- err
  		return
  	}
  
  	var wg sync.WaitGroup
  	wg.Add(len(dead))
  
  	for _, worker := range dead {
  		go func(worker string) {
  			defer wg.Done()
  
  			err := j.handleDeath(worker)
  			if err != nil && err != redsync.ErrFailed {
  				j.errs <- err
  			}
  		}(worker)
  	}
  
  	wg.Wait()
  }
docs: // Detects expired records and starts tasks to move any of their abandoned
  // tasks back to the main queue.