diff -r 5b37998e522e -r 162c1de6545a web/lib/Zend/Queue/Message/PlatformJob.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Queue/Message/PlatformJob.php Fri Mar 11 15:05:35 2011 +0100 @@ -0,0 +1,194 @@ +_job = $options['data']; + parent::__construct($this->_job->getProperties()); + } else { + parent::__construct($options); + + if (!isset($options['script'])) { + require_once 'Zend/Queue/Exception.php'; + throw new Zend_Queue_Exception('The script is mandatory data'); + } + + $this->_job = new ZendApi_Job($options['script']); + $this->_setJobProperties(); + } + } + + /** + * Set the job identifier + * + * Used within Zend_Queue only. + * + * @param string $id + * @return Zend_Queue_Message_PlatformJob + */ + public function setJobId($id) + { + $this->_id = $id; + return $this; + } + + /** + * Retrieve the job identifier + * + * @return string + */ + public function getJobId() + { + return (($this->_id) ? $this->_id : $this->_job->getID()); + } + + /** + * Retrieve the internal ZendApi_Job instance + * + * @return ZendApi_Job + */ + public function getJob() + { + return $this->_job; + } + + /** + * Store queue and data in serialized object + * + * @return array + */ + public function __sleep() + { + return serialize('_job', '_id', '_data'); + } + + /** + * Query the class name of the Queue object for which this + * Message was created. + * + * @return string + */ + public function getQueueClass() + { + return 'Zend_Queue_Adapter_Platform_JQ'; + } + + /** + * Sets properties on the ZendApi_Job instance + * + * Any options in the {@link $_data} array will be checked. Those matching + * options in ZendApi_Job will be used to set those options in that + * instance. + * + * @return void + */ + protected function _setJobProperties() { + + if (isset($this->_data['script'])) { + $this->_job->setScript($this->_data['script']); + } + + if (isset($this->_data['priority'])) { + $this->_job->setJobPriority($this->_data['priority']); + } + + if (isset($this->_data['name'])) { + $this->_job->setJobName($this->_data['name']); + } + + if (isset($this->_data['predecessor'])) { + $this->_job->setJobDependency($this->_data['predecessor']); + } + + if (isset($this->_data['preserved'])) { + $this->_job->setPreserved($this->_data['preserved']); + } + + if (isset($this->_data['user_variables'])) { + $this->_job->setUserVariables($this->_data['user_variables']); + } + + if (!empty($this->_data['interval'])) { + $endTime = isset($this->_data['end_time']) ? $this->_data['end_time'] : null; + $this->_job->setRecurrenceData($this->_data['interval'], $endTime); + } elseif (isset($this->_data['interval']) && ($this->_data['interval'] === '')) { + $this->_job->setRecurrenceData(0,0); + } + + if (isset($this->_data['scheduled_time'])) { + $this->_job->setScheduledTime($this->_data['scheduled_time']); + } + + if (isset($this->_data['application_id'])) { + $this->_job->setApplicationID($this->_data['application_id']); + } + } +}