public function __construct($msg) { parent::__construct(); $msg_as_array = json_decode($msg, true); $this->id = $msg_as_array['id']; $this->application_id = $msg_as_array['applicationId']; $this->app_version_id = $msg_as_array['appVersionId']; $this->event_id = $msg_as_array['eventId']; $this->arguments = $msg_as_array['arguments']; $this->target = $msg_as_array['target']; $this->timeout = $msg_as_array['timeout']; $this->async = $msg_as_array['async']; $this->decoded_arguments = null; if (GlobalState::$TYPE === 'CLOUD') { $this->relative_path = $msg_as_array['relativePath']; Config::$RELATIVE_PATH = $msg_as_array['relativePath']; Config::$TASK_APPLICATION_ID = $msg_as_array['applicationId']; ClassManager::analyze(); } }
protected function RequestServiceInvocation($msg) { /// invoke hosted servise action $rsi = new RequestServiceInvocation($msg); Log::writeInfo("Received RSI:" . $rsi, $target = 'file'); if (GlobalState::$TYPE == 'CLOUD' && time() * 1000 - $rsi->getTimestamp() > $this->timeout) { Log::writeError("RSI ignored by timeout" . $rsi, $target = 'file'); return; } if (GlobalState::$TYPE === 'CLOUD') { Config::$RELATIVE_PATH = $msg['relativePath']; Config::$TASK_APPLICATION_ID = $msg['applicationId']; //ClassManager::analyze( PathBuilder::getClasses() ); ClassManager::analyze(PathBuilder::getHostedService($rsi->getAppVersionId(), $rsi->getRelativePath())); } $executor = $this->executor_holder->getCodeExecutor($rsi->getApplicationId(), $rsi->getAppVersionId()); $executor->invokeService($rsi); }