/** * Launches tasks are due to run * * @return int Returns the number of the launched tasks */ public function launch() { $curTime = new DateTime('now'); if ($curTime->format('i') % 5 == 1) { $services = []; foreach (ScalrService::find() as $scalrService) { $services[$scalrService->name] = $scalrService; } foreach ($this->getAllTasks() as $task) { $config = $task->config(); if (!array_key_exists($task->getName(), $services)) { $task->getScalrService()->update(['state' => $config->enabled ? ScalrService::STATE_SCHEDULED : ScalrService::STATE_DISABLED]); } elseif (!$config->enabled && $services['state'] != ScalrService::STATE_DISABLED) { $task->getScalrService()->update(['state' => ScalrService::STATE_DISABLED]); } } } $count = 0; //Gets all scheduled task at this second foreach ($this->getScheduled() as $task) { /* @var $task \Scalr\System\Zmq\Cron\TaskInterface */ $this->log("DEBUG", "Launching %s", $task->getName()); $task->launch(); $count++; } return $count; }
/** * Gets Scalr service * * @return ScalrService Returns ScalrService instance for the current task */ public function getScalrService() { if (!isset($this->scalrService)) { $this->scalrService = ScalrService::findPk($this->getName()); if (!$this->scalrService) { // Initialization performs only once a life $this->scalrService = new ScalrService(); $this->scalrService->name = $this->getName(); $this->scalrService->numTasks = 0; $this->scalrService->numWorkers = 0; $this->scalrService->save(); } } return $this->scalrService; }
public function getContent($params = []) { if ($this->user->getType() != User::TYPE_SCALR_ADMIN) { throw new Scalr_Exception_InsufficientPermissions(); } $hosts = []; foreach (ScalrHost::find() as $host) { $hosts[] = ['host' => $host->host, 'version' => $host->version, 'edition' => $host->edition, 'revision' => empty($host->gitCommit) ? '' : $host->gitCommit, 'revDate' => empty($host->gitCommitAdded) ? '' : $host->gitCommitAdded->format('Y-m-d H:i:s O')]; } $stateNames = ScalrService::listStateNames(); $allServices = []; foreach (ScalrService::find([['name' => ['$nin' => ScalrService::EXCLUDED_SERVICES]]]) as $scalrService) { $lastTime = empty($scalrService->lastFinish) ? time() : $scalrService->lastFinish->getTimestamp(); $allServices[] = ['name' => ucfirst(str_replace("_", " ", $scalrService->name)), 'numWorkers' => $scalrService->numWorkers, 'numTasks' => $scalrService->numTasks, 'lastStart' => !empty($scalrService->lastStart) ? Scalr_Util_DateTime::getIncrescentTimeInterval($scalrService->lastStart) : '', 'timeSpent' => !empty($scalrService->lastStart) ? $lastTime - $scalrService->lastStart->getTimestamp() : '', 'state' => $stateNames[$scalrService->state]]; } return ['hosts' => $hosts, 'services' => $allServices]; }