Exemple #1
0
 protected function tryToStartNewTasks()
 {
     if ($this->scheduled->isEmpty() || false === ($threadId = array_search(false, $this->threads, true))) {
         return;
     }
     do {
         $task = $this->scheduled->dequeue();
         $this->dispatchEvent(self::EVENT_TASK_STARTED_PRE, $task, $threadId);
         $this->threads[$threadId] = $task;
         $this->runningThreads++;
         $task->start($threadId);
         $this->dispatchEvent(self::EVENT_TASK_STARTED_POST, $task, $threadId);
     } while (!$this->scheduled->isEmpty() && false !== ($threadId = array_search(false, $this->threads, true)));
 }