Example #1
0
 /**
  *
  * @param \Qutee\Task $task
  *
  * @return \Qutee\Queue
  */
 public function addTask(Task $task)
 {
     $this->getPersistor()->addTask($task);
     $event = new Event($this);
     $event->setTask($task);
     $this->getEventDispatcher()->dispatch(self::EVENT_ADD_TASK, $event);
     return $this;
 }
Example #2
0
 /**
  * Run the worker, get tasks of the queue, run them
  *
  * @return Task|null Task which ran, or null if no task found
  * @throws \Exception
  */
 public function run()
 {
     // Start timing
     $this->_startTime();
     // Get next task with set priority (or any task if priority not set)
     if (null === ($task = $this->getQueue()->getTask($this->getPriority()))) {
         return;
     }
     $event = new Event($this);
     $event->setArgument('startTime', $this->_startTime);
     $event->setTask($task);
     $this->getQueue()->getEventDispatcher()->dispatch(self::EVENT_START_PROCESSING_TASK, $event);
     $this->_runTask($task);
     $event = new Event($this);
     $event->setArgument('elapsedTime', $this->_getPassedTime());
     $event->setTask($task);
     $this->getQueue()->getEventDispatcher()->dispatch(self::EVENT_END_PROCESSING_TASK, $event);
     // After working, sleep
     $this->_sleep();
     return $task;
 }