public function fetchWaitingWorker()
    {
        $count = count($this->waitingList);
        for ($i = 0; $i < $count; $i++) {
            $worker = array_shift($this->waitingList);
            if ($worker->isValid() && $worker->isReady()) {
                return $worker;
            }
        }

        $this->ready = false;

        return null;
    }