MongoClient::close
(PECL mongo >=1.3.0)
MongoClient::close — Закрывает соединение
Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.
Описание
$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 |
Параметр |
PECL mongo 1.2.0 |
До версии 1.2.0 драйвер не использовал постоянные соединения по умолчанию, и все соединения закрывались, как только выход из MongoDB выходил из области действия. Начиная с версии 1.2.0, это больше не так, и плохая идея - вызывать close, так как в итоге вы можете перегружать сервер соединениями под высокой нагрузкой. |
Смотрите также
- MongoClient::getConnections() - Возвращает информацию обо всех открытых соединениях