/** * Funkce pro načtení plných výsledků úlohy z PMML * * @return TaskState */ public function importResultsPMML() { #region zjištění jména souboru, který se má importovat (a kontrola, jestli tu nějaký takový soubor je) $importData = $this->task->getImportData(); $taskState = $this->task->getTaskState(); if (!empty($importData)) { $filename = array_shift($importData); if (file_exists($filename)) { //FIXME optimalizace načítání výsledků - vyřešení duplicitních cedentů (aby nedocházelo k jejich duplicitnímu importu $importedRulesCount = 0; $this->fullParseRulesPMML(simplexml_load_file($filename), $importedRulesCount, true); #region aktualizace TaskState $taskState->importData = $importData; $taskState->importState = Task::IMPORT_STATE_WAITING; if (empty($importData)) { if ($taskState->state == Task::STATE_SOLVED || $taskState->state == Task::STATE_INTERRUPTED) { $taskState->importState = Task::IMPORT_STATE_DONE; } } #endregion aktualizace TaskState //smažeme importovaný soubor FileSystem::delete($filename); } } #endregion return $taskState; }
/** * Funkce pro zastavení dolování * @return TaskState */ public function stopMining() { $taskState = $this->task->getTaskState(); if ($taskState->state == Task::STATE_SOLVED || $taskState->state != Task::STATE_IN_PROGRESS) { return $taskState; } try { $this->cancelRemoteMinerTask($this->getRemoteMinerTaskName()); $this->task->state = Task::STATE_INTERRUPTED; } catch (\Exception $e) { } return $this->task->getTaskState(); }