code: func (l *DefaultLifecycle) recv() {
  	for {
  		select {
  		case <-l.closer:
  			close(l.errs)
  			return
  		default:
  			payload, err := l.workingTasks.Pull(time.Second)
  			if err == redis.ErrNil {
  				continue
  			}
  
  			if err != nil {
  				l.errs <- err
  				continue
  			}
  
  			if payload == nil || bytes.Equal(deleteToken, payload) {
  				continue
  			}
  
  			task := NewTask(l, payload)
  			l.addTask(task)
  			l.tasks <- task
  		}
  	}
  }
docs: // recv pulls items from the queue and publishes them into the <-chan *Task. If
  // a message is sent over the `closer` channel, then this process will be
  // stoped.