0

我最近收到一条评论说我应该“在我的脚本中使用 connect_timeout”。我去寻找这实际上是什么意思,我在php.net上的用户评论中找到了这些信息:

One thing is to remember, whenever trying to use pg_connect, add the timeout 
parameter with it

<?php 
$d=pg_connect('host=example.com user=pgsql dbname=postgres connect_timeout=5'); 
?>

所以,同样的信息“你应该使用它”,但没有解释为什么?所以,我希望有人可以为我澄清这一点?

此外,是否应该设置一些“默认” connect_timeout,就像用户评论所建议的那样5?出于某种原因,这是pg_connect一个糟糕的选择,我应该connect_timeout在每次pg_connect通话中添加它,还是?

我在pgsql 文档中进行了搜索,它只是说:

connect_timeout
Maximum wait for connection, in seconds (write as a decimal integer string). Zero
or not specified means wait indefinitely. It is not recommended to use a timeout
of less than 2 seconds.

但我没有看到这方面的用例场景,坦率地说,我以前从未使用过它,所以,无论如何,对此的一些见解将不胜感激。

4

1 回答 1

3

对于一个网站,设置连接超时至少有两个原因,以防与数据库的连接挂起:

  • 使用适当的错误消息和日志记录来优雅地降级,而不是让用户等到无聊。

  • 不要让网络服务器积累进程并冒着达到其极限(例如maxclientsapache)的风险,以至于它根本不会提供任何请求。通常我们希望任何网络请求尽快完成。

于 2013-09-09T17:53:39.280 回答