code: func (l *DefaultLifecycle) Listen() (<-chan *Task, <-chan error) {
  	l.tasks = make(chan *Task)
  	l.errs = make(chan error)
  	l.closer = make(chan struct{})
  
  	go l.recv()
  
  	return l.tasks, l.errs
  }
docs: // Listen returns a channel of tasks and error that are pulled from the
  // main processing queue. Once a *Task is able to be read from the <-chan *Task,
  // that Task is ready to be worked on and is in the appropriate locations in
  // Redis. StopListening() can be called to terminate.