Ruby脚本挂起错误的PG连接调用

我有一个
Ruby脚本,它连接到postgres数据库,运行一些查询,然后关闭/返回给用户的数据.

该脚本工作正常,但如果我给它一个错误的主机名,整个脚本就会挂起,我必须ctrl-Z出来.我知道为了解决这个问题,我需要查看postgres的libpq后端,但我对于如何将它全部包装到我的ruby脚本中感到很遗憾.
我正在使用Ruby 1.8和pg gem处理postgres的东西,调用open open:

myConnection = PGconn.connect(host,port,pgOptions,pgTTY,name,user,password)

(options和tty只是空字符串)

任何帮助/提示/建议都会很棒!

最佳答案 有一个connect_timeout选项,您可以这样做:USING STRING

connection_string =“host = YOUR_HOST port = YOUR_PORT connect_timeout = YOUR_TIMEOUT PERIOD”

PGconn.connect(connection_string)

PGconn.connect还提供了更多rubyesque哈希表示法

:host => YOU_HOST,:port => YOUR_PORT,:connect_timeout => YOUR_TIMEOUT_PERIOD

此外,您可以将其包装在开始救援中,以便在连接超时时,其余代码不会运行

免责声明:我实际上没有对此进行测试,但它是pg gem文档的一部分

http://deveiate.org/code/pg/

点赞