/** * It starts callback in parallel process. * * @return Client */ public function start() { $this->_meomry->set(Utils::getStatusKey($this->_id), Enum\Status::NONE); $this->_meomry->set(Utils::getResultKey($this->_id), null); $this->_meomry->set(Utils::getCallbackKey($this->_id), serialize($this->_callback)); $root = dirname(__DIR__); $command = 'php ' . $root . '/scripts/Process/startExecutor.php --id ' . $this->_id; exec($command . ' >> /dev/null 2>&1 &'); return $this; }
/** * Starts execution of callback. * * @return Executor */ public function start() { $this->_memory->set(Utils::getStatusKey($this->_id), Enum\Status::START); try { $callback = unserialize($this->_memory->get(Utils::getCallbackKey($this->_id))); /* @var $callback Callback */ $this->_memory->set(Utils::getStatusKey($this->_id), Enum\Status::RUN); $result = $callback->invoke(); $this->_memory->set(Utils::getResultKey($this->_id), $result); $this->_memory->set(Utils::getStatusKey($this->_id), Enum\Status::DONE); } catch (\Exception $exp) { $this->_memory->set(Utils::getResultKey($this->_id), $exp->getMessage() . "\n" . $exp->getTraceAsString()); $this->_memory->set(Utils::getStatusKey($this->_id), Enum\Status::ERROR); } return $this; }