code: func (wp *WorkerPool) Start() {
  	if wp.started {
  		return
  	}
  	wp.started = true
  
  	// TODO: we should cleanup stale keys on startup from previously registered jobs
  	wp.writeConcurrencyControlsToRedis()
  	go wp.writeKnownJobsToRedis()
  
  	for _, w := range wp.workers {
  		go w.start()
  	}
  
  	wp.heartbeater = newWorkerPoolHeartbeater(wp.namespace, wp.pool, wp.workerPoolID, wp.jobTypes, wp.concurrency, wp.workerIDs())
  	wp.heartbeater.start()
  	wp.startRequeuers()
  	wp.periodicEnqueuer = newPeriodicEnqueuer(wp.namespace, wp.pool, wp.periodicJobs)
  	wp.periodicEnqueuer.start()
  }
docs: // Start starts the workers and associated processes.