DBServer::getTerminatingServers PHP Method

getTerminatingServers() public static method

Gets a list of servers which in the termination process
public static getTerminatingServers ( ) : array
return array Returns the list of the servers
    public static function getTerminatingServers()
    {
        return Scalr::getDb()->GetAll("\n            SELECT\n                s.`server_id`, s.`client_id`, s.`env_id`, s.`platform`, s.`status`, s.`dtshutdownscheduled`,\n                te.`attempts`\n            FROM `servers` s\n            LEFT JOIN `server_termination_errors` te ON te.`server_id` = s.`server_id`\n            WHERE (s.`status` = ? OR (s.`dtshutdownscheduled` IS NOT NULL AND (s.`status` = ? OR s.`status` = ?)))\n            AND (te.`server_id` IS NULL OR te.retry_after <= NOW())\n            ORDER BY s.`dtshutdownscheduled`, te.`attempts`\n        ", [SERVER_STATUS::TERMINATED, SERVER_STATUS::PENDING_TERMINATE, SERVER_STATUS::PENDING_SUSPEND]);
    }

Usage Example

コード例 #1
0
ファイル: ServerTerminate.php プロジェクト: recipe/scalr
 /**
  * {@inheritdoc}
  * @see Scalr_System_Cronjob_MultiProcess_DefaultWorker::enqueueWork()
  */
 function enqueueWork($workQueue)
 {
     $this->logger->info("Fetching servers to remove...");
     $qty = 0;
     foreach (DBServer::getTerminatingServers() as $row) {
         $workQueue->put($row['server_id']);
         $qty++;
     }
     $this->logger->info("Found " . $qty . " terminating servers");
 }