コード例 #1
0
 public function OnCustomEvent(CustomEvent $event)
 {
     $servers = DBFarm::LoadByID($this->FarmID)->GetServersByFilter(array('status' => array(SERVER_STATUS::INIT, SERVER_STATUS::RUNNING)));
     $event->messageServers = count($servers);
     $event->processing = array();
     foreach ((array) $servers as $DBServer) {
         try {
             $startTime = microtime(true);
             $msg = new Scalr_Messaging_Msg();
             $msg->setName($event->GetName());
             $msg->setServerMetaData($event->DBServer);
             $msg = Scalr_Scripting_Manager::extendMessage($msg, $event, $event->DBServer, $DBServer);
             $extendTime = microtime(true) - $startTime;
             // Send message ONLY if there are scripts assigned to this event
             if (count($msg->scripts) > 0) {
                 $DBServer->SendMessage($msg, false, true);
             }
             $endTime = microtime(true) - $startTime;
             $event->processing[] = array($extendTime, $endTime, count($msg->scripts));
             if (!$msg) {
                 throw new Exception("Empty MSG");
             }
         } catch (Exception $e) {
             //TODO: Log this situation
         }
     }
 }