/** * Send a message to the queue * * @param string $message Message to send to the active queue * @param Zend_Queue $queue * @return Zend_Queue_Message * @throws Zend_Queue_Exception - database error */ public function send($message, Zend_Queue $queue = null) { if ($this->_messageRow === null) { $this->_messageRow = $this->_messageTable->createRow(); } 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 Zend_Queue_Exception('Queue does not exist:' . $queue->getName()); } $msg = clone $this->_messageRow; $msg->queue_id = $this->getQueueId($queue->getName()); $msg->created = time(); $msg->body = $message; $msg->md5 = md5($message); // $msg->timeout = ??? @TODO try { $msg->save(); } catch (Exception $e) { throw new Zend_Queue_Exception($e->getMessage(), $e->getCode(), $e); } $options = array('queue' => $queue, 'data' => $msg->toArray()); $classname = $queue->getMessageClass(); if (!class_exists($classname)) { Zend_Loader::loadClass($classname); } return new $classname($options); }
/** * Push an element onto the end of the queue * * @param mixed $message message to send to the queue * @param string $name queue name * @return Zend_Queue_Message */ public function send($message, $name = null) { if ($name !== null) { $this->setActiveQueue($name); } else { $name = $this->getActiveQueue(); } $msg = $this->_message->createRow(); $msg->queue_id = $this->getActiveQueue(); $msg->body = $message; $msg->md5 = md5($message); try { $msg->save(); } catch (Exception $e) { /** * @see Zend_Queue_Adapter_Exception */ require_once 'Zend/Queue/Adapter/Exception.php'; throw new Zend_Queue_Adapter_Exception($e->getMessage(), $e->getCode()); } $config = array('queue' => $this, 'data' => $msg->toArray()); Zend_Loader::loadClass($this->_msgClass); return new $this->_msgClass($config); }