MongoClient::close

(PECL mongo >=1.3.0)

MongoClient::closeЗакрывает соединение

Описание

public MongoClient::close ( bool|string $connection = ? ) : bool

Метод MongoClient::close() принудительно закрывает соединение с базой данных, даже если используются постоянные соединения. Вы никогда не должны делать это при нормальных обстоятельствах.

Список параметров

connection

Если соединение не задано или false, то соединение, которое будет выбрано для записи, будет закрыто. В конфигурации с одним узлом – все соединения, но если вы подключены к набору реплик, close() закроет соединение только с основным сервером.

Если соединение true, тогда все соединения, известные диспетчеру соединений, будут закрыты. Это может включать соединения, на которые нет ссылок в строке соединения, используемой для создания объекта, для которого вы вызываете close.

Если connection является строковым аргументом, он закроет только соединение, идентифицированное этим хешем. Хэши являются идентификаторами для соединения и могут быть получены путем вызова MongoClient::getConnections().

Возвращаемые значения

Возвращает, если соединение было успешно закрыто.

Примеры

Пример #1 Пример использования MongoClient::close()

Этот пример демонстрирует, как выборочно закрыть все соединения только для вторичных серверов.

<?php
// Подключаемся к набору реплик
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");

$connections $a->getConnections();

foreach ( 
$connections as $con )
{
    
// Цикл по всем соединениям, и если тип "SECONDARY"
    // мы закрываем соединение
    
if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
    {
        echo 
"Закрываем '{$con['hash']}': ";
        
$closed $a->close$con['hash'] );
        echo 
$closed "ok" "failed""\n";
    }
}
?>

Результат выполнения данного примера:

Закрываем 'whisky:13001;X;4948': ok

Список изменений

Версия Описание
PECL mongo 1.3.0

Параметр connection к этой функции был добавлен в 1.3.0. До этого этим методом закрывалось только соединение записи.

PECL mongo 1.2.0

До версии 1.2.0 драйвер не использовал постоянные соединения по умолчанию, и все соединения закрывались, как только выход из MongoDB выходил из области действия. Начиная с версии 1.2.0, это больше не так, и плохая идея - вызывать close, так как в итоге вы можете перегружать сервер соединениями под высокой нагрузкой.

Смотрите также