• Модуль: pull
  • Путь к файлу: ~/bitrix/modules/pull/lib/event.php
  • Класс: BitrixPullEvent
  • Вызов: Event::executeEvents
static function executeEvents(): MainResult
{
	$result = new MainResult();
	if (empty(self::$messages))
	{
		return $result;
	}

	if (!CPullOptions::GetQueueServerStatus())
	{
		self::$messages = [];

		return $result;
	}

	self::fillChannels(self::$messages);

	if (Config::isJsonRpcUsed())
	{
		$messageList = self::convertEventsToMessages(self::$messages);
		$sendResult = JsonRpcTransport::sendMessages($messageList);
		if ($sendResult->isSuccess())
		{
			self::$messages = [];
		}
		else
		{
			$result->addErrors($sendResult->getErrors());
		}
	}
	else
	{
		if (Config::isProtobufUsed())
		{
			$sendResult = ProtobufTransport::sendMessages(self::$messages);
			if (!$sendResult->isSuccess())
			{
				$result->addErrors($sendResult->getErrors());
			}
		}
		else
		{
			self::sendEventsLegacy();
		}

		self::$messages = [];
	}

	return $result;
}