DBFarmRole::GetRunningInstancesCount PHP Method

GetRunningInstancesCount() public method

    public function GetRunningInstancesCount()
    {
        $considerSuspendedServers = $this->GetSetting(Scalr_Role_Behavior::ROLE_BASE_CONSIDER_SUSPENDED);
        if (!$considerSuspendedServers || $considerSuspendedServers == 'running') {
            return $this->DB->GetOne("SELECT COUNT(*) FROM servers WHERE status IN (?,?,?) AND farm_roleid=? LIMIT 1", array(\SERVER_STATUS::RUNNING, \SERVER_STATUS::PENDING_SUSPEND, \SERVER_STATUS::SUSPENDED, $this->ID));
        } else {
            return $this->DB->GetOne("SELECT COUNT(*) FROM servers WHERE status = ? AND farm_roleid=? LIMIT 1", array(\SERVER_STATUS::RUNNING, $this->ID));
        }
    }

Usage Example

Beispiel #1
0
 public function makeDecision(DBFarmRole $dbFarmRole, Scalr_Scaling_FarmRoleMetric $farmRoleMetric, $isInvert = false)
 {
     if ($farmRoleMetric->lastValue > $farmRoleMetric->getSetting('max')) {
         $retval = Scalr_Scaling_Decision::UPSCALE;
     } elseif ($farmRoleMetric->lastValue < $farmRoleMetric->getSetting('min')) {
         $retval = Scalr_Scaling_Decision::DOWNSCALE;
     }
     if (!$retval) {
         return Scalr_Scaling_Decision::NOOP;
     } else {
         if ($isInvert) {
             if ($retval == Scalr_Scaling_Decision::UPSCALE) {
                 $retval = Scalr_Scaling_Decision::DOWNSCALE;
             } else {
                 $retval = Scalr_Scaling_Decision::UPSCALE;
             }
         }
         if ($retval == Scalr_Scaling_Decision::UPSCALE) {
             if ($dbFarmRole->GetRunningInstancesCount() + $dbFarmRole->GetPendingInstancesCount() >= $dbFarmRole->GetSetting(Entity\FarmRoleSetting::SCALING_MAX_INSTANCES)) {
                 $retval = Scalr_Scaling_Decision::NOOP;
             }
         }
         if ($retval == Scalr_Scaling_Decision::DOWNSCALE) {
             if ($dbFarmRole->GetRunningInstancesCount() <= $dbFarmRole->GetSetting(Entity\FarmRoleSetting::SCALING_MIN_INSTANCES)) {
                 $retval = Scalr_Scaling_Decision::NOOP;
             }
         }
         $isSzr = true;
         if ($retval == Scalr_Scaling_Decision::UPSCALE && ($dbFarmRole->GetPendingInstancesCount() > 5 && !$isSzr)) {
             return Scalr_Scaling_Decision::NOOP;
         } else {
             return $retval;
         }
     }
 }
All Usage Examples Of DBFarmRole::GetRunningInstancesCount