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 } } }