Scalr\Observer\MessagingEventObserver::OnCustomEvent PHP Метод

OnCustomEvent() публичный Метод

См. также: Scalr\Observer\AbstractEventObserver::OnCustomEvent()
public OnCustomEvent ( CustomEvent $event )
$event CustomEvent
    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) {
            }
        }
    }