_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']); } } }