public function OnCustomEvent(CustomEvent $event)
{
$servers = DBFarm::LoadByID($this->FarmID)->GetServersByFilter(['status' => [SERVER_STATUS::INIT, SERVER_STATUS::RUNNING]]);
$event->messageServers = count($servers);
$event->processing = [];
foreach ((array) $servers as $dbServer) {
if (!$dbServer->isScalarized) {
continue;
}
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) {
}
}
}