Postgres - dblink_connect как установить время ожидания - PullRequest
0 голосов
/ 09 ноября 2019

Я использую dblink_connect внутри функции postgres, например:

select dblink_connect('gw', 'dbname=databasename port=5432 host=RemoteIP user=username password=pass');

Когда удаленный сервер не работает, это dblink_connect занимает много времени для возврата

«ОШИБКА: не удалось установить соединение».

Мне нужно установить тайм-аут на этот dblink_connect, чтобы как можно быстрее вернуть ошибку.

Я пробовал что-то вродеэто:

begin;
SET session statement_timeout to 5000;
select dblink_connect('gw', 'dbname=databasename port=5432 host=RemoteIP user=username password=pass');
commit;

Но не сработало.

Есть идеи, что я могу установить время ожидания?

1 Ответ

0 голосов
/ 09 ноября 2019

Необходимо указать connect_timeout в строке подключения:

 dblink_connect('gw', 'connect_timeout=2 dbname=databasename port=5432 host=RemoteIP user=username password=pass')

Пока оно заблокировано в ожидании соединения, оно находится в состоянии, когда оно не может быть прервано, поэтому Statement_timeoutне работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...