/** * Add task * * @param Task $task * @return $this */ public function addTask(Task $task) { $queuedTask = new QueuedTask($task); if ($this->firstTask === null) { $this->firstTask = $queuedTask; } if ($this->lastTask === null) { $this->lastTask = $queuedTask; } else { $this->lastTask->setNext($queuedTask); $this->lastTask = $queuedTask; } $this->queueSize++; if ($this->status === self::STATUS_RUNNING || $this->autoRun === true) { $this->status = self::STATUS_RUNNING; $this->fillAndStartProcessing(); } return $this; }