- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/composite/responder.php
- Класс: BitrixMainCompositeMemcachedResponse
- Вызов: MemcachedResponse::getConnection
static function getConnection(array $configuration, array $htmlCacheOptions)
{
if (self::$memcached === null && self::$connected === null)
{
$arServers = self::getServers($htmlCacheOptions);
$memcached = new Memcache;
if (count($arServers) === 1)
{
if ($memcached->connect($arServers[0]["HOST"], $arServers[0]["PORT"]))
{
self::$connected = true;
self::$memcached = $memcached;
register_shutdown_function(array(__CLASS__, "close"));
}
else
{
self::$connected = false;
}
}
elseif (count($arServers) > 1)
{
self::$memcached = $memcached;
foreach ($arServers as $arServer)
{
self::$memcached->addServer(
$arServer["HOST"],
$arServer["PORT"],
true, //persistent
($arServer["WEIGHT"] > 0 ? $arServer["WEIGHT"] : 1),
1 //timeout
);
}
}
else
{
self::$connected = false;
}
}
return self::$memcached;
}