Intereting Posts

Установка времени ожидания соединения PDO менее 1 секунды

Я использую PHP и объект PDO для подключения к mysql. У меня есть 3 сервера БД, к которым может подключиться мой php-код. Если я попытаюсь подключиться к серверу БД №1 и сбою подключения, я хотел бы сразу попытаться подключиться к серверу БД №2. Самый низкий, на который я могу установить время ожидания соединения, составляет 1 секунду с приведенным ниже кодом.

$DBH = new PDO("mysql:host=$host;dbname=$dbname", $username, $password,array(PDO::ATTR_TIMEOUT => "1",PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

В идеале я хотел бы установить время ожидания до <50 миллисекунд. Или 0ms, если это возможно. Есть какой-либо способ сделать это?

Solutions Collecting From Web of "Установка времени ожидания соединения PDO менее 1 секунды"

Это невозможно, потому что основной драйвер MySQL этого не позволит:

Запрос № 60716 : Возможность установить тайм-аут соединения PDO в миллисекундах

Я думаю, что невозможно установить тайм-аут, используя миллисекунды. Обратитесь к php doucmnetation mysql.connect_timeout :

mysql.connect_timeout:

Время ожидания подключения в секундах. В Linux этот тайм-аут также используется для ожидания первого ответа с сервера.

Кстати, я думаю, что то, что вы собираетесь сделать, звучит немного взломанно для меня. Если у вас есть профессиональные требования, я бы использовал балансировщик нагрузки. Вы можете следовать этому руководству