Example #1
0
 /**
  * Send a message to the queue
  *
  * @param string $message
  * @param Zend_Queue|null $queue
  * @return Zend_Queue_Message
  * @throws Enterprise_Queue_Exception
  */
 public function send($message, Zend_Queue $queue = null)
 {
     if ($queue === null) {
         $queue = $this->_queue;
     }
     if (is_scalar($message)) {
         $message = (string) $message;
     }
     if (is_string($message)) {
         $message = trim($message);
     }
     if (!$this->isExists($queue->getName())) {
         throw new Enterprise_Queue_Exception('Queue does not exist: ' . $queue->getName());
     }
     $this->_queueTaskModel->setData(array('queue_id' => $this->_getQueueId($queue->getName()), 'handle' => md5(uniqid(rand(), true)), 'data' => $message, 'status' => Enterprise_Queue_Model_Queue_Task::TASK_STATUS_PENDING));
     try {
         $this->_queueTaskModel->save();
     } catch (Exception $e) {
         throw new Enterprise_Queue_Exception($e->getMessage(), $e->getCode(), $e);
     }
     $className = $queue->getMessageClass();
     return new $className(array('queue' => $queue, 'data' => $this->_queueTaskModel->getData()));
 }
Example #2
0
 /**
  * Report failed task
  *
  * @param int $taskId
  * @return Enterprise_Queue_Model_Worker_Reporter_Native
  */
 public function reportTaskFailed($taskId)
 {
     $this->_task->setStatus(Enterprise_Queue_Model_Queue_Task::TASK_STATUS_SKIPPED);
     $this->_task->save();
     return $this;
 }