code: func New(pool *redis.Pool, src, id string) *DefaultWorker {
  	heartbeater := heartbeat.New(
  		id,
  		fmt.Sprintf("%s:%s", src, "ticks"),
  		defaultHeartInterval, pool)
  
  	return &DefaultWorker{
  		pool:           pool,
  		availableTasks: queue.NewByteQueue(pool, src),
  		workingTasks:   queue.NewDurableQueue(pool, src, getWorkingQueueName(src, id)),
  
  		lifecycle: NewLifecycle(pool),
  		detector:  heartbeater.Detector(),
  		heart:     heartbeater.Heart(),
  		janitor:   nilJanitor{},
  
  		state: closed,
  	}
  }
docs: // New creates and returns a pointer to a new instance of a DefaultWorker. It uses the
  // given redis.Pool, the main queue to pull from (`src`), and is given a
  // unique ID through the `id` paramter.